[
  {
    "path": "Chapter-2/ReadMe",
    "content": "This folder holds simulation codes for Chapter 2\n\n* chapter_2_2_2.m:tire model validation\n\n* chapter_2_3_2.m:车辆动力学模型推导\n\n* chap2_KinematicModel_Validation: 运动学模型仿真验证\n\n* chap2_DynamicModel_Validation: 动力学模型仿真验证\n\n"
  },
  {
    "path": "Chapter-2/chap2_DynamicModel_Validation/DynamicsEstimation_UKF.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"DynamicsEstimation_UKF\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.324\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"DynamicsStateEstimation\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2700.0, 290.0, 931.0, 650.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[881.0, 473.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[63.507142857142128, 304.6]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Wed Sep 04 11:05:15 2019\"\r\n  RTWModifiedTimeStamp\t  489495913\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:324>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"DynamicsEstimation_UKF\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"DynamicsEstimation_UKF\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"30\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"DynamicsEstimation_UKF\"\r\n    Location\t\t    [2700, 290, 3631, 940]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"141\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [0, 1]\r\n      Position\t\t      [330, 239, 430, 301]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_Dynamics_Estimation.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [195, 366, 500, 434]\r\n      ZOrder\t\t      12\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_DynamicsEstimation_DualUKF\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [195, 285, 255, 315]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      116\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [104, 0; 0, 130]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      130\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-56, 0; 0, -100]\r\n      DstBlock\t\t      \"To Workspace1\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-2/chap2_DynamicModel_Validation/Main_DynamicsEstimation_DualUKF.m",
    "content": "function [sys,x0,str,ts] =Main_DynamicsEstimation_DualUKF(t,x,u,flag)\r\n%***************************************************************%\r\n% This dynamics state estimation is based on \"Roll Prediction-based Optimal\r\n% Control for Safe Path Following\" by Sanghyun Hong and J. Karl Hedrick.\r\n% This method could provide a good result on the estimation of ROll angle.\r\n% But, not so good with Vy and roll rate.\r\n%  VyĹЧãΪѧģͲȷ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 5;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 12;  %S\r\nsizes.NumInputs      = 39; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\nglobal Initial_State;\r\nglobal Px; \r\nglobal Numx;\r\nInitial_State=[0; 0 ; 0 ; 0; 0];  % initial state\r\nNumx = numel(Initial_State);\r\nPx = eye(Numx);                 % initial state covraiance\r\n\r\nglobal Wm;\r\nglobal Wc;\r\nglobal r_sigmas;\r\n[Wm, Wc, r_sigmas] = UTSetup(Numx);\r\n\r\n\r\nglobal Initial_w; \r\nglobal Pw; \r\nglobal Numw;\r\nInitial_w=[1610; 1.1];         % initial w\r\nNumw = numel(Initial_w);\r\nPw = eye(Numw);                 % initial w covraiance\r\n\r\nglobal Wm_w;\r\nglobal Wc_w;\r\nglobal r_sigmas_w;\r\n[Wm_w, Wc_w, r_sigmas_w] = UTSetup_w(Numw);\r\n\r\nglobal PreviousYawrate; \r\nglobal PreviousVx; \r\nPreviousYawrate = 0;\r\nPreviousVx = 0;\r\n\r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nglobal Initial_State; \r\nglobal Px; \r\nglobal Numx;\r\nglobal Wm;\r\nglobal Wc;\r\nglobal r_sigmas;\r\n\r\nglobal Initial_w; \r\nglobal Pw; \r\nglobal Numw;\r\nglobal Wm_w;\r\nglobal Wc_w;\r\nglobal r_sigmas_w;\r\n\r\nglobal PreviousYawrate; \r\nglobal PreviousVx; \r\n\r\nTs  = 0.05;\r\nIz  = 2059.2;\r\nm   = 1600;\r\nms  = 1430;\r\ng   = 9.81;\r\nhs  = 0.65;\r\n% Lf  = 1.12;  %a\r\n% Lr  = 1.48;  %b\r\nL   = 2.6;\r\nLw  = 1.565;\r\nIx  = 700.7;\r\n\r\nrho     = 1.206;\r\nCd      = 0.15;\r\nAf      = 3.1; % 1.6; %\r\nf_roll  = 0.02;\r\nKroll   = 145330; %42075;\r\nCroll   = 4500.5; %5737.5;\r\n\r\n%% Updatd measured State of Vehicle\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u); % unpack data from Carsim   \r\n\r\n    Vx          = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    Yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad    \r\n    if 0 == Vx\r\n        Vx = 10;\r\n    end\r\n    AyG_SM      = ParaHAT.AyG_SM;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    \r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    Rollangle   = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    \r\n    Faero   = 0.5*rho*Cd*Af*Vx^2;\r\n    %     Fyf         = ParaHAT.Fyf;\r\n    %     Fyr         = ParaHAT.Fyr;   \r\n\r\n    Fcfl = ParaHAT.Fy_l1;\r\n    Fcfr = ParaHAT.Fy_r1;\r\n    Fcrl = ParaHAT.Fy_l2;\r\n    Fcrr = ParaHAT.Fy_r2;\r\n\r\n    Flfl = ParaHAT.Fx_L1;\r\n    Flfr = ParaHAT.Fx_R1;\r\n    Flrl = ParaHAT.Fx_L2;\r\n    Flrr = ParaHAT.Fx_R2;\r\n\r\n    Fxfl = Flfl*cos(fwa) -Fcfl*sin(fwa);\r\n    Fxfr = Flfr*cos(fwa) -Fcfr*sin(fwa);\r\n    Fxrl = Flrl;\r\n    Fxrr = Flrr;\r\n    Fyfl = Flfl*sin(fwa) + Fcfl*cos(fwa);\r\n    Fyfr = Flfr*sin(fwa) + Fcfr*cos(fwa);\r\n    Fyrl = Fcrl;\r\n    Fyrr = Fcrr;\r\n    Fx   = Fxfl+Fxfr+Fxrl+Fxrr;\r\n    Fy   = Fyfl+Fyfr+Fyrl+Fyrr;\r\n    \r\n\r\n\r\n%% Dual UKF process for estimation\r\n\r\n%=====================================================================%\r\nfstate_w = @(w)[w(1), w(2)]; %[m, lf]\r\nhmeas_w = @(w)[ Fy/(w(1)) + g*Rollangle; % + hs*Rollrate_dot; \r\n                Vx;\r\n                PreviousYawrate + Ts*( ( w(2)*(Fyfl+Fyfr)-(L-w(2))*(Fyrl+Fyrr) + Lw*(Fxfr+Fxrr-Fxfl-Fxrl)/2 )/Iz );\r\n                (Fx-Faero)/(w(1))];\r\nNy_w = 4;         \r\nYmeasurement_w = [AyG_SM; Vx; Yawrate; Ax]; \r\nQ_w = 0.1 * eye(Numw);\r\nR_w = 0.1 * eye(Ny_w);\r\n\r\nX_w=Sigmas_w(Initial_w, Pw, r_sigmas_w);                           %sigma points around x\r\n[x1_w,X1_w,P1_w,X2_w]=UnscentedTransform_w(fstate_w, X_w, Wm_w, Wc_w, Numw, Q_w);      %unscented transformation of process\r\n\r\n\r\n[z1_w,Z1_w,P2_w,Z2_w]=UnscentedTransform_w(hmeas_w, X1_w, Wm_w, Wc_w, Ny_w, R_w);       %unscented transformation of measurments\r\n\r\n    % Update after the measurement of \r\n    P12_w=X2_w*diag(Wc_w)*Z2_w';                        %transformed cross-covariance    \r\n    R_w  = chol(P2_w);            %Cholesky factorization\r\n    U_w  = P12_w/R_w;                    %K=U/R'; Faster because of back substitution\r\n    X0_w = x1_w+U_w*(R_w'\\(Ymeasurement_w-z1_w));     %Back substitution to get state update\r\n    Pp_w = P1_w-U_w*U_w';                   %Covariance update, U*U'=P12/R/R'*P12'=K*P12. \r\n        \r\nInitial_w       = X0_w;\r\nPw              = Pp_w;\r\nPreviousYawrate = Yawrate;\r\nPreviousVx      = Vx;\r\n\r\nLf  = X0_w(2);  %a\r\nLr  = L - Lf;  %b\r\n\r\n%=====================================================================%\r\n%---Vehicle Dynamics Model according to \"Sanghyun Hong and J. Karl Hedrick\"-------%\r\n% Let s = [Vx; Vy; Yawrate; Rollangle; Rollrate];\r\n%     x1_dot = (Fx-Faero-f_roll*m*g)/m + Vy*Yawrate;\r\n%     x2_dot = Fy/m - Vx*Yawrate;    \r\n%     x3_dot = ( Lf*(Fyfl+Fyfr)-Lr*(Fyrl+Fyrr) + Lw*(Fxfr+Fxrr-Fxfl-Fxrl)/2 )/Iz;\r\n%     x4_dot = rollrate;\r\n%     x5_dot = ( ms*hs*( Fy/m+ g*Rollangle ) - Kroll*Rollangle - Croll*Rollrate)/Ix;\r\n% Discrete the previous model with Ts, then we get:\r\nfstate = @(s)[  s(1) + Ts*((Fx-Faero-f_roll*m*g)/m + s(2)*s(3));% \r\n                s(2) + Ts*(Fy/m - s(1)*s(3)); %\r\n                s(3) + Ts*(( Lf*(Fyfl+Fyfr) - Lr*(Fyrl+Fyrr) + Lw*(Fxfr+Fxrr-Fxfl-Fxrl)/2 )/Iz);\r\n                s(4) + Ts*s(5);\r\n                s(5) + Ts*(( ms*hs*( Fy/m + g*s(4)) -Kroll*s(4) - Croll*s(5) )/Ix) ]; \r\n\r\n%-------------ay_sensor, Ax, yaw rate and Vx can be measured -----------*%\r\nYmeasurement = [AyG_SM; Vx; Yawrate; Ax];  \r\nNy = 4; \r\nhmeas = @(s)[ Fy/m  + g*s(4); % - hs*( ms*hs*( Fy/m + g*s(4) ) -Kroll*s(4) - Croll*s(5))/Ix\r\n              s(1);\r\n              s(3);\r\n             (Fx-Faero)/m - f_roll*g ];         \r\n\r\n%-------------------------Dynamics of DualUKF----------------------------% \r\nQ = 0.1 * eye(Numx);\r\nR = 0.1 * eye(Ny);\r\n \r\nX=Sigmas(Initial_State,Px,r_sigmas);                           %sigma points around x\r\n[x1,X1,P1,X2]=UnscentedTransform(fstate, X, Wm, Wc, Numx, Q);      %unscented transformation of process\r\n\r\n[z1,Z1,P2,Z2]=UnscentedTransform(hmeas, X1, Wm, Wc, Ny, R);       %unscented transformation of measurments\r\n\r\n    % Update after the measurement of \r\n     P12=X2*diag(Wc)*Z2';                        %transformed cross-covariance   \r\n%     %********************Normal solution********************%\r\n%     K=P12*inv(P2);\r\n%     X0=x1+K*(Ymeasurement-z1);                              %state update\r\n%     P0=P1-K*P12';                                %covariance update\r\n     %********************Cholesky solution********************%\r\n    R=chol(P2);            %Cholesky factorization\r\n    U=P12/R;                    %K=U/R'; Faster because of back substitution\r\n    X0 = x1+U*(R'\\(Ymeasurement-z1));     %Back substitution to get state update\r\n    P0=P1-U*U';                   %Covariance update, U*U'=P12/R/R'*P12'=K*P12. \r\n        \r\nInitial_State = X0;\r\nPx            = P0;\r\n\r\n\r\nsys = [X0; Vx; Vy; Yawrate; Rollangle; Rollrate; X0_w];\r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n    HATParameter.GearStat    = ModelInput(30);\r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    VehStatemeasured.Station     = ModelInput(34); %m    \r\n%     HATParameter.Z0          = ModelInput(34); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.AyG_SM      = ModelInput(37)*g; %m/s^2, acceleration measured by accelerometer\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n%     HATParameter.Ax_SM       = ModelInput(39)*g; %m/s^2\r\n   \r\nfunction [Wm, Wc, r_sigmas] = UTSetup(L)\r\n    alpha=1e-2;                                 %default, tunable\r\n    ki=1;                                       %default, tunable, generally set to 3-L\r\n    beta=2;                                     %default, tunable\r\n    lambda=alpha^2*(L+ki)-L;                    %scaling factor\r\n    c=L+lambda;                                 %scaling factor\r\n    Wm=[lambda/c 0.5/c+zeros(1,2*L)];           %weights for means\r\n    %Wm=[lambda/c ones(1,2*L)/(2*c)];           %weights for means\r\n    Wc=Wm;                                      %length=2*L+1\r\n    Wc(1)=Wc(1)+(1-alpha^2+beta);               %weights for covariance\r\n    r_sigmas=sqrt(c);\r\n\r\n\r\nfunction [y,Y,P,Y1] = UnscentedTransform(f,X,Wm,Wc,n,R)\r\n%Unscented Transformation\r\n%Input:\r\n%        f: nonlinear map\r\n%        X: sigma points\r\n%       Wm: weights for mean\r\n%       Wc: weights for covraiance\r\n%        n: numer of outputs of f\r\n%        R: additive covariance\r\n%Output:\r\n%        y: transformed mean\r\n%        Y: transformed smapling points\r\n%        P: transformed covariance\r\n%       Y1: transformed deviations\r\n\r\nL=size(X,2);\r\ny=zeros(n,1);\r\nY=zeros(n,L);\r\nfor k=1:L                   \r\n    Y(:,k)=f(X(:,k));       \r\n    y=y+Wm(k)*Y(:,k);       \r\nend\r\nY1=Y-y(:,ones(1,L));\r\nP=Y1*diag(Wc)*Y1'+R;          \r\n\r\nfunction X = Sigmas(x,P,c)\r\n%Sigma points around reference point\r\n%Inputs:\r\n%       x: reference point\r\n%       P: covariance\r\n%       c: coefficient\r\n%Output:\r\n%       X: Sigma points\r\n\r\nA = c*chol(P)';\r\nY = x(:,ones(1,numel(x)));\r\nX = [x Y+A Y-A]; \r\n\r\nfunction [Wm, Wc, r_sigmas] = UTSetup_w(L)\r\n    alpha=1e-2;                                 %default, tunable\r\n    ki=1;                                       %default, tunable, generally set to 3-L\r\n    beta=2;                                     %default, tunable\r\n    lambda=alpha^2*(L+ki)-L;                    %scaling factor\r\n    c=L+lambda;                                 %scaling factor\r\n    Wm=[lambda/c 0.5/c+zeros(1,2*L)];           %weights for means\r\n    %Wm=[lambda/c ones(1,2*L)/(2*c)];           %weights for means\r\n    Wc=Wm;                                      %length=2*L+1\r\n    Wc(1)=Wc(1)+(1-alpha^2+beta);               %weights for covariance\r\n    r_sigmas=sqrt(c);\r\n\r\n\r\nfunction [y,Y,P,Y1] = UnscentedTransform_w(f,X,Wm,Wc,n,R)\r\n%Unscented Transformation\r\n%Input:\r\n%        f: nonlinear map\r\n%        X: sigma points\r\n%       Wm: weights for mean\r\n%       Wc: weights for covraiance\r\n%        n: numer of outputs of f\r\n%        R: additive covariance\r\n%Output:\r\n%        y: transformed mean\r\n%        Y: transformed smapling points\r\n%        P: transformed covariance\r\n%       Y1: transformed deviations\r\n\r\nL=size(X,2);\r\ny=zeros(n,1);\r\nY=zeros(n,L);\r\nfor k=1:L                   \r\n    Y(:,k)=f(X(:,k));       \r\n    y=y+Wm(k)*Y(:,k);       \r\nend\r\nY1=Y-y(:,ones(1,L));\r\nP=Y1*diag(Wc)*Y1'+R;          \r\n\r\nfunction X = Sigmas_w(x,P,c)\r\n%Sigma points around reference point\r\n%Inputs:\r\n%       x: reference point\r\n%       P: covariance\r\n%       c: coefficient\r\n%Output:\r\n%       X: Sigma points\r\n\r\nA = c*chol(P)';\r\nY = x(:,ones(1,numel(x)));\r\nX = [x Y+A Y-A]; \r\n\r\n "
  },
  {
    "path": "Chapter-2/chap2_DynamicModel_Validation/Main_RollDynamicsEstimation_UKF_Modified.m",
    "content": "function [sys,x0,str,ts] =Main_RollDynamicsEstimation_UKF_Modified(t,x,u,flag)\r\n%***************************************************************%\r\n% This dynamics state estimation is based on \"Roll Prediction-based Optimal\r\n% Control for Safe Path Following\" by Sanghyun Hong and J. Karl Hedrick.\r\n%  VyĹЧãΪѧģͲȷ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 5;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 10;  %S\r\nsizes.NumInputs      = 39; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\nglobal Initial_State; \r\nglobal P; \r\nglobal Numx;\r\nInitial_State=[0; 0 ; 0 ; 0; 0];  % initial state\r\nNumx = numel(Initial_State);\r\nP = eye(Numx);                 % initial state covraiance\r\n\r\n% global PreviousYawrate;\r\n% PreviousYawrate = 0;\r\n\r\nglobal Wm;\r\nglobal Wc;\r\nglobal r_sigmas;\r\n[Wm, Wc, r_sigmas] = UTSetup(Numx);\r\n\r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nglobal Initial_State; \r\nglobal P; \r\n% global PreviousYawrate;\r\nglobal Wm;\r\nglobal Wc;\r\nglobal r_sigmas;\r\nglobal Numx;\r\n\r\nTs  = 0.05;\r\nIz  = 2059.2;\r\nm   = 1600;\r\nms  = 1430;\r\ng   = 9.81;\r\nhs  = 0.65;\r\nLf  = 1.12;  %a\r\nLr  = 1.48;  %b\r\n% L   = 2.6;\r\nLw  = 1.565;\r\nIx  = 700.7;\r\n\r\nrho     = 1.206;\r\nCd      = 0.15;\r\nAf      = 3.1;\r\nf_roll  = 0.02;\r\nKroll   = 145330; %42075;\r\nCroll   = 4500.5; %5737.5;\r\n\r\n%% Updatd measured State of Vehicle\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u); % unpack data from Carsim   \r\n\r\n    Vx          = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    Yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad    \r\n    if 0 == Vx\r\n        Vx = 10;\r\n    end\r\n    AyG_SM      = ParaHAT.AyG_SM;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    Ax_SM       = ParaHAT.Ax_SM; %m/s^2\r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    Rollangle   = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    \r\n    Faero   = 0.5*rho*Cd*Af*Vx^2;\r\n    %     Fyf         = ParaHAT.Fyf;\r\n    %     Fyr         = ParaHAT.Fyr;   \r\n\r\n    Fcfl = ParaHAT.Fy_l1;\r\n    Fcfr = ParaHAT.Fy_r1;\r\n    Fcrl = ParaHAT.Fy_l2;\r\n    Fcrr = ParaHAT.Fy_r2;\r\n\r\n    Flfl = ParaHAT.Fx_L1;\r\n    Flfr = ParaHAT.Fx_R1;\r\n    Flrl = ParaHAT.Fx_L2;\r\n    Flrr = ParaHAT.Fx_R2;\r\n\r\n    Fxfl = Flfl*cos(fwa) -Fcfl*sin(fwa);\r\n    Fxfr = Flfr*cos(fwa) -Fcfr*sin(fwa);\r\n    Fxrl = Flrl;\r\n    Fxrr = Flrr;\r\n    Fyfl = Flfl*sin(fwa) + Fcfl*cos(fwa);\r\n    Fyfr = Flfr*sin(fwa) + Fcfr*cos(fwa);\r\n    Fyrl = Fcrl;\r\n    Fyrr = Fcrr;\r\n    Fx   = Fxfl+Fxfr+Fxrl+Fxrr;\r\n    Fy   = Fyfl+Fyfr+Fyrl+Fyrr;\r\n    \r\n\r\n\r\n%% Dual UKF process for estimation\r\n%-----------------Vehicle Dynamics Model according to \"Sanghyun Hong and J. Karl Hedrick\"-------%\r\n% Let s = [Vx; Vy; Yawrate; Rollangle; Rollrate];\r\n%     x1_dot = (Fx-Faero)/m + Vy*Yawrate;\r\n%     x2_dot = Fy/m - Vx*Yawrate;    \r\n%     x3_dot = ( Lf*(Fyfl+Fyfr)-Lr*(Fyrl+Fyrr) + Lw*(Fxfr+Fxrr-Fxfl-Fxrl)/2 )/Iz;\r\n%     x4_dot = rollrate;\r\n%     x5_dot = ( ms*hs*( Fy/m+ g*Rollangle ) - Kroll*Rollangle - Croll*Rollrate)/Ix;\r\n% Discrete the previous model with Ts, then we get:\r\nfstate = @(s)[  s(1) + Ts*((Fx-Faero-f_roll*m*g)/m + s(2)*s(3)) - hs*s(3)*s(5);  %  2*\r\n                s(2) + Ts*(Fy/m - s(1)*s(3)) + hs* (( m*hs*( Fy/m + g*s(4)) -Kroll*s(4) - Croll*s(5) )/Ix); % \r\n                s(3) + Ts*(( Lf*(Fyfl+Fyfr) - Lr*(Fyrl+Fyrr) + Lw*(Fxfr+Fxrr-Fxfl-Fxrl)/2 )/Iz);\r\n                s(4) + Ts*s(5);\r\n                s(5) + Ts*(( m*hs*( Fy/m + g*s(4)) -Kroll*s(4) - Croll*s(5) )/Ix) ]; \r\n%------------- ay_sensor, Ax, yawrate and Vx can be measured -----------*%\r\nYmeasurement = [AyG_SM; Vx; Yawrate; Ax_SM];  \r\nNy = 4; \r\nhmeas = @(s)[ Fy/m  + g*s(4); % - hs* (( m*hs*( Fy/m + g*s(4)) -Kroll*s(4) - Croll*s(5) )/Ix)\r\n              s(1);\r\n              s(3);\r\n             (Fx-Faero)/m - f_roll*g]; \r\n         \r\n%-------------------------Dynamics of DualUKF----------------------------% \r\nQ = 0.1 * eye(Numx);\r\nR = 0.1 * eye(Ny);\r\n \r\nX=Sigmas(Initial_State,P,r_sigmas);                           %sigma points around x\r\n[x1,X1,P1,X2]=UnscentedTransform(fstate, X, Wm, Wc, Numx, Q);      %unscented transformation of process\r\n\r\n[z1,Z1,P2,Z2]=UnscentedTransform(hmeas, X1, Wm, Wc, Ny, R);       %unscented transformation of measurments\r\n\r\n    % Update after the measurement of \r\n     P12=X2*diag(Wc)*Z2';                        %transformed cross-covariance   \r\n%     %********************Normal solution********************%\r\n%     K=P12*inv(P2);\r\n%     X0=x1+K*(Ymeasurement-z1);                              %state update\r\n%     P0=P1-K*P12';                                %covariance update\r\n     %********************Cholesky solution********************%\r\n    R=chol(P2);            %Cholesky factorization\r\n    U=P12/R;                    %K=U/R'; Faster because of back substitution\r\n    X0 = x1+U*(R'\\(Ymeasurement-z1));     %Back substitution to get state update\r\n    P0=P1-U*U';                   %Covariance update, U*U'=P12/R/R'*P12'=K*P12. \r\n        \r\nInitial_State = X0;\r\nP             = P0;\r\n% PreviousYawrate   = Yawrate;\r\n\r\nsys = [X0; Vx; Vy; Yawrate; Rollangle; Rollrate];\r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n    HATParameter.GearStat    = ModelInput(30);\r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n%     VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.AyG_SM       = ModelInput(37)*g; %m/s^2, acceleration measured by accelerometer\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    HATParameter.Ax_SM       = ModelInput(39)*g; %m/s^2\r\n   \r\nfunction [Wm, Wc, r_sigmas] = UTSetup(L)\r\n    alpha=1e-2;                                 %default, tunable\r\n    ki=1;                                       %default, tunable, generally set to 3-L\r\n    beta=2;                                     %default, tunable\r\n    lambda=alpha^2*(L+ki)-L;                    %scaling factor\r\n    c=L+lambda;                                 %scaling factor\r\n    Wm=[lambda/c 0.5/c+zeros(1,2*L)];           %weights for means\r\n    %Wm=[lambda/c ones(1,2*L)/(2*c)];           %weights for means\r\n    Wc=Wm;                                      %length=2*L+1\r\n    Wc(1)=Wc(1)+(1-alpha^2+beta);               %weights for covariance\r\n    r_sigmas=sqrt(c);\r\n\r\n\r\nfunction [y,Y,P,Y1] = UnscentedTransform(f,X,Wm,Wc,n,R)\r\n%Unscented Transformation\r\n%Input:\r\n%        f: nonlinear map\r\n%        X: sigma points\r\n%       Wm: weights for mean\r\n%       Wc: weights for covraiance\r\n%        n: numer of outputs of f\r\n%        R: additive covariance\r\n%Output:\r\n%        y: transformed mean\r\n%        Y: transformed smapling points\r\n%        P: transformed covariance\r\n%       Y1: transformed deviations\r\n\r\nL=size(X,2);\r\ny=zeros(n,1);\r\nY=zeros(n,L);\r\nfor k=1:L                   \r\n    Y(:,k)=f(X(:,k));       \r\n    y=y+Wm(k)*Y(:,k);       \r\nend\r\nY1=Y-y(:,ones(1,L));\r\nP=Y1*diag(Wc)*Y1'+R;          \r\n\r\nfunction X = Sigmas(x,P,c)\r\n%Sigma points around reference point\r\n%Inputs:\r\n%       x: reference point\r\n%       P: covariance\r\n%       c: coefficient\r\n%Output:\r\n%       X: Sigma points\r\n\r\nA = c*chol(P)';\r\nY = x(:,ones(1,numel(x)));\r\nX = [x Y+A Y-A]; \r\n\r\n\r\n\r\n "
  },
  {
    "path": "Chapter-2/chap2_DynamicModel_Validation/Plot_EstimationResultData.m",
    "content": "\r\nclose all\r\n% firstline          = u.signals.values(:,1);\r\n% Num = length(firstline);\r\n\r\nVx_hat          = u.signals.values(:,1);\r\nVy_hat          = u.signals.values(:,2);\r\nYawrate_hat     = u.signals.values(:,3);\r\nRoll_hat        = u.signals.values(:,4);\r\nRollrate_hat    = u.signals.values(:,5);\r\n\r\nVx_Carsim       = u.signals.values(:,6);\r\nVy_Carsim       = u.signals.values(:,7);\r\nYawrate_Carsim  = u.signals.values(:,8);\r\nRoll_Carsim     = u.signals.values(:,9);\r\nRollrate_Carsim = u.signals.values(:,10);\r\n\r\nTs = 0.05;\r\nNum = length(Vx_hat);\r\nRollrate_Est = zeros(Num,1);\r\nfor i = 2:1:Num\r\n    Rollrate_Est(i) = (Roll_hat(i)-Roll_hat(i-1))/Ts;\r\nend\r\n\r\nVy_error = (Vy_hat - Vy_Carsim); \r\nRoll_error = (Roll_hat - Roll_Carsim); \r\nRollrate_error = (Rollrate_Est - Rollrate_Carsim); \r\nRollrate_error1 = (Rollrate_hat - Rollrate_Carsim); \r\n\r\n\r\nEstimation_Result.Vy_hat            = Vy_hat;\r\nEstimation_Result.Vy_Carsim         = Vy_Carsim;\r\nEstimation_Result.Roll_hat          = Roll_hat;\r\nEstimation_Result.Roll_Carsim       = Roll_Carsim;\r\nEstimation_Result.Rollrate_Est      = Rollrate_Est;\r\nEstimation_Result.Rollrate_Carsim   = Rollrate_Carsim;\r\nEstimation_Result.Vy_error          = Vy_error;\r\nEstimation_Result.Roll_error        = Roll_error;\r\nEstimation_Result.Rollrate_error    = Rollrate_error;\r\n\r\n% save DynamicsEstimation_DualUKF_Modified_10.mat Estimation_Result;\r\n\r\nmean_vy         = mean(Vy_error);\r\nvar_vy          = var(Vy_error);\r\nmean_Roll       = mean(Roll_error);\r\nvar_Roll        = var(Roll_error);\r\nmean_Rollrate   = mean(Rollrate_error);\r\nvar_Rollrate    = var(Rollrate_error);\r\nSumary = [mean_vy, var_vy, mean_Roll, var_Roll, mean_Rollrate, var_Rollrate];\r\n\r\n%% figure plot\r\nlw = 2;\r\n\r\n\r\nfigure\r\nplot(1:Num, Vx_hat,'b',1:Num, Vx_Carsim,'r','Linewidth',lw);\r\nlegend('Vx_{hat}','Vx_{Carsim}');\r\ntitle('Comparison of Vx');\r\n\r\nfigure\r\nplot(1:Num, Yawrate_hat,'b',1:Num, Yawrate_Carsim,'r','Linewidth',lw);\r\nlegend('Yawrate_{hat}','Yawrate_{Carsim}');\r\ntitle('Comparison of Yawrate');\r\n\r\nfigure\r\nsubplot(2,1,1)\r\nplot(1:Num, Roll_hat,'b',1:Num, Roll_Carsim,'r','Linewidth',lw);\r\nlegend('Roll_{hat}','Roll_{Carsim}');\r\ntitle('Comparison of Roll');\r\nsubplot(2,1,2)\r\nplot(1:Num, Roll_error,'b','Linewidth',lw);\r\n\r\nfigure\r\nsubplot(2,1,1)\r\nplot(1:Num, Rollrate_hat,'b',1:Num, Rollrate_Carsim,'r','Linewidth',lw);\r\nlegend('Rollrate_{hat}','Rollrate_{Carsim}');\r\ntitle('Comparison of Rollrate');\r\n subplot(2,1,2)\r\nplot(1:Num, Rollrate_error1,'b',1:Num, Rollrate_error,'k','Linewidth',lw);\r\n\r\nfigure\r\nsubplot(2,1,1)\r\nplot(1:Num, Vy_hat,'b',1:Num, Vy_Carsim,'r','Linewidth',lw);\r\nlegend('Vy_{hat}','Vy_{Carsim}');\r\nsubplot(2,1,2)\r\nplot(1:Num, Vy_error,'k','Linewidth',lw);\r\ntitle('Comparison of Vy');\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-2/chap2_DynamicModel_Validation/ReadMe",
    "content": "Dynamic model validation\n\nTo be Continued ...\n"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/Chapter2_KinematicModel_Validation.par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run278.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 20:39 on September 02, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run278.par`08-28-2019`16:03:36\r\n#FullDataName CarSim Run Control`Chapter2_KinematicModel_Validation`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex129.par`08-28-2019`22:38:22\r\n#FullDataName Models: Simulink`chapt2_KinematicModel_Validate Model`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap2_KinematicModel_Validation\\KinematicModel_Validation.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap2_KinematicModel_Validation\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap2_KinematicModel_Validation\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch124.par`08-28-2019`21:22:06\r\n#FullDataName I/O Channels: Export`chapt2_KM_Validate_Exports`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_X_L2\r\nEXP_X_R2\r\nEXP_Y_L2\r\nEXP_Y_R2\r\nEXP_Yaw\r\nEXP_Steer_SW\r\nEXP_Steer_L1\r\nEXP_Steer_R1\r\nEXP_Vx_L2\r\nEXP_Vx_R2\r\n#MiscYellow0\r\n#Number of Selected Channels: 10\r\n#CHN_NAME: X_L2\r\n#CHN_NAME: X_R2\r\n#CHN_NAME: Y_L2\r\n#CHN_NAME: Y_R2\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Steer_SW\r\n#CHN_NAME: Steer_L1\r\n#CHN_NAME: Steer_R1\r\n#CHN_NAME: Vx_L2\r\n#CHN_NAME: Vx_R2\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } chapt2_KM_Validate_Exports\r\n#Library : I/O Channels: Export\r\n#DataSet : chapt2_KM_Validate_Exports\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch124\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 21:22:06\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch124.par\r\n\r\n#BlueLink1 I/O Channels: Export`chapt2_KM_Validate_Exports` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_KinematicModel_Validation.sim\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt2_KinematicModel_Validate Model\r\n#Library : Models: Simulink\r\n#DataSet : chapt2_KinematicModel_Validate Model\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex129\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 22:38:22\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex129.par\r\n\r\n#BlueLink12 Models: Simulink`chapt2_KinematicModel_Validate Model` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 278\r\nID_RUN 278\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle166.par`08-28-2019`15:41:14\r\n#FullDataName Vehicle: Assembly`D-Class, Sedan LEO`CS D-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 1\r\nOPT_PT 1\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp105.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`D-Class, Sedan - Front Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.65144\r\n*R_SPRING_R 0.65144\r\n*R_DAMPER_L 0.65144\r\n*R_DAMPER_R 0.65144\r\n*FS_OFFSET_L 0\r\n*FS_OFFSET_R 0\r\n*CT_FX_L 0\r\n*CT_FX_R 0\r\n*CS_FY_L -0.27e-6\r\n*CS_FY_R -0.27e-6\r\n*CS_MZ_L 0.38e-4\r\n*CS_MZ_R 0.38e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 0\r\n*CI_FY_R 0\r\n*CI_MZ_L 0\r\n*CI_MZ_R 0\r\n*C_LONG_L 5.0e-5\r\n*C_LONG_R 5.0e-5\r\n*C_LAT_L 4.1e-5\r\n*C_LAT_R 4.1e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.65144\r\n*R_JOUNCE_R 0.65144\r\n*R_REBOUND_L 0.65144\r\n*R_REBOUND_R 0.65144\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock101.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big Car Damping`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE LINEAR\r\n-1410, -5008\r\n-720, -3436\r\n-390, -2324\r\n-210, -1792\r\n-90, -1008\r\n-20, -228\r\n20, 228\r\n90, 596\r\n200, 784\r\n390, 1100\r\n760, 1796\r\n1160, 2560\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big Car Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big Car Damping\r\n#Category:\r\n#FileID  : Shock101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock101.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 384\r\n\r\nMX_AUX_COEFFICIENT 384\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 384 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 384 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+60 mm / -40 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n58, 0\r\n59, 0\r\n60, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-40, -10000\r\n-39, 0\r\n-38, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +60 mm / -40 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +60 mm / -40 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb101.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+60 mm / -40 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.65144\r\nCMP_DAMP_COEFFICIENT 0.65144\r\nFS_OFFSET 0\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT -0.27e-6\r\nCS_MZ_COEFFICIENT 0.38e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nC_LONG_COEFFICIENT 5.0e-5\r\nC_LAT_COEFFICIENT 4.1e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.65144\r\nCMP_RSTOP_COEFFICIENT 0.65144\r\nENTER_PARSFILE Suspensions\\Springs\\Spring105.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`153 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 153\r\nFS_EXT_COEFFICIENT 153\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 153\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 153 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 153 N/mm\r\n#Category:\r\n#FileID  : Spring105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring105.par\r\n\r\n#BlueLink0 Suspension: Spring`153 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+60 mm / -40 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.65144\r\nCMP_DAMP_COEFFICIENT 0.65144\r\nFS_OFFSET 0\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT -0.27e-6\r\nCS_MZ_COEFFICIENT 0.38e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nC_LONG_COEFFICIENT 5.0e-5\r\nC_LAT_COEFFICIENT 4.1e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.65144\r\nCMP_RSTOP_COEFFICIENT 0.65144\r\n#BlueLink3 Suspension: Spring`153 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS D-Class } D-Class, Sedan - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : D-Class, Sedan - Front Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp105_note.txt\r\nFront spring rate chosen for a front ride frequency of 2.0 Hz and a front corner weight of 411 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp105.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`D-Class, Sedan - Front Comp.` CS D-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin105.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`D-Class, Sedan - Front Suspension`CS D-Class\r\niside 1\r\nL_TRACK 1550\r\nY_CL_SUSP 0\r\nM_US 80\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0\r\n*TOE_R 0\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front Strut - Front Dive Angle`Strut\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 0.282157\r\n-60, 0.243294\r\n-50, 0.204028\r\n-40, 0.164309\r\n-30, 0.124089\r\n-20, 0.083323\r\n-10, 0.041971\r\n0, 0\r\n10, -0.042617\r\n20, -0.085893\r\n30, -0.129828\r\n40, -0.174396\r\n50, -0.21954\r\n60, -0.265153\r\n70, -0.311062\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 0.282157\r\n-60, 0.243294\r\n-50, 0.204028\r\n-40, 0.164309\r\n-30, 0.124089\r\n-20, 0.083323\r\n-10, 0.041971\r\n0, 0\r\n10, -0.042617\r\n20, -0.085893\r\n30, -0.129828\r\n40, -0.174396\r\n50, -0.21954\r\n60, -0.265153\r\n70, -0.311062\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { Strut } Front Strut - Front Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front Strut - Front Dive Angle\r\n#Category: Strut\r\n#FileID  : Dive101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive101_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive101_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive101.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front Strut - Front Dive Angle` Strut` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX101.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front Strut -  Longitudinal Movement`Strut\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.779336\r\n-60, -0.596671\r\n-50, -0.438583\r\n-40, -0.304523\r\n-30, -0.194019\r\n-20, -0.106665\r\n-10, -0.042102\r\n0, 0\r\n10, 0.019968\r\n20, 0.018152\r\n30, -0.005034\r\n40, -0.049059\r\n50, -0.113201\r\n60, -0.196434\r\n70, -0.297272\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.779336\r\n-60, -0.596671\r\n-50, -0.438583\r\n-40, -0.304523\r\n-30, -0.194019\r\n-20, -0.106665\r\n-10, -0.042102\r\n0, 0\r\n10, 0.019968\r\n20, 0.018152\r\n30, -0.005034\r\n40, -0.049059\r\n50, -0.113201\r\n60, -0.196434\r\n70, -0.297272\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { Strut } Front Strut -  Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front Strut -  Longitudinal Movement\r\n#Category: Strut\r\n#FileID  : SusX101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX101.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front Strut -  Longitudinal Movement` Strut` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front Strut - Camber`Strut\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.16282\r\n-60, 0.958695\r\n-50, 0.76676\r\n-40, 0.58725\r\n-30, 0.42045\r\n-20, 0.266701\r\n-10, 0.126399\r\n0, 0\r\n10, -0.111976\r\n20, -0.208942\r\n30, -0.290231\r\n40, -0.355097\r\n50, -0.402697\r\n60, -0.432083\r\n70, -0.442184\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { Strut } Front Strut - Camber\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front Strut - Camber\r\n#Category: Strut\r\n#FileID  : Camber101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber101.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front Strut - Camber` Strut` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front Strut - Lateral Movement`Strut\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 2.81522\r\n-60, 1.82386\r\n-50, 1.03219\r\n-40, 0.437944\r\n-30, 0.039162\r\n-20, -0.165848\r\n-10, -0.178513\r\n0, 0\r\n10, 0.368777\r\n20, 0.927155\r\n30, 1.67473\r\n40, 2.61133\r\n50, 3.73709\r\n60, 5.05237\r\n70, 6.55783\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 2.81522\r\n-60, 1.82386\r\n-50, 1.03219\r\n-40, 0.437944\r\n-30, 0.039162\r\n-20, -0.165848\r\n-10, -0.178513\r\n0, 0\r\n10, 0.368777\r\n20, 0.927155\r\n30, 1.67473\r\n40, 2.61133\r\n50, 3.73709\r\n60, 5.05237\r\n70, 6.55783\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { Strut } Front Strut - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front Strut - Lateral Movement\r\n#Category: Strut\r\n#FileID  : SusLat101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat101.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front Strut - Lateral Movement` Strut` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe101.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front Strut - Toe Change`Strut\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, -0.932437\r\n-60, -0.740516\r\n-50, -0.56874\r\n-40, -0.416666\r\n-30, -0.283952\r\n-20, -0.170354\r\n-10, -0.075723\r\n0, 0\r\n10, 0.056776\r\n20, 0.09447\r\n30, 0.112841\r\n40, 0.11153\r\n50, 0.090047\r\n60, 0.047744\r\n70, -0.016224\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { Strut } Front Strut - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front Strut - Toe Change\r\n#Category: Strut\r\n#FileID  : Toe101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe101.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front Strut - Toe Change` Strut` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0\r\nA_CAMBER 0\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front Strut - Front Dive Angle` Strut` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front Strut -  Longitudinal Movement` Strut` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front Strut - Camber` Strut` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front Strut - Lateral Movement` Strut` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front Strut - Toe Change` Strut` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0\r\nA_CAMBER 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS D-Class } D-Class, Sedan - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : D-Class, Sedan - Front Suspension\r\n#Category: CS D-Class\r\n#FileID  : IndKin105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin105_note.txt\r\nGeneric front strut type suspension geometry created with SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin105.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`D-Class, Sedan - Front Suspension` CS D-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire103.par`08-02-2011`16:42:33\r\n#FullDataName Tire`215/55 R17`Touring Tires\r\nX_LENGTH 334\r\nZ_LENGTH 334\r\nY_LENGTH 215\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup108.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Euro Sedan Tire`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL136.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Tire\r\n#Category: Tires\r\n#FileID  : AniSTL136\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL136.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Euro. Sedan Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL137.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL137\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL137.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Euro. Sedan Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL138.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL138.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Euro. Sedan Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Euro Sedan Tire\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Euro Sedan Tire\r\n#Category: Tires\r\n#FileID  : StlGroup108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup108.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Euro Sedan Tire` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 215\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 650 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 650; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 650 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 650 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet110.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 650 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 325\r\nR0 334\r\nFZ_TIRE_COEFFICIENT 268\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 32\r\nL_RELAX_Y 665\r\nVLOW_ALPHA 5\r\nRR_C 0.0038\r\nRR_V 0.000026\r\nRR_FX 1\r\nOPT_TIRE_COMB 0\r\nENTER_PARSFILE Tires\\Mz\\TireMz103.par`08-02-2011`16:42:31\r\n#FullDataName Tire: Aligning Moment`215/55 R17`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1593.58, 3187.16, 4780.74, 6374.32, 7967.9, 9561.48, 11155.06, 12748.65\r\n0.5, 34.35, 66.71, 96.57, 123.59, 147.51, 168.17, 185.43, 199.2\r\n1, 53.27, 104.31, 152.55, 197.56, 238.93, 276.26, 309.15, 337.21\r\n1.5, 52.85, 104.57, 155.01, 203.99, 251.22, 296.35, 338.9, 378.28\r\n2, 43.71, 87.21, 130.71, 174.32, 218.05, 261.82, 305.41, 348.47\r\n2.5, 33.99, 68.22, 103.04, 138.74, 175.5, 213.49, 252.76, 293.29\r\n3, 26.04, 52.49, 79.75, 108.15, 137.96, 169.45, 202.83, 238.31\r\n3.5, 19.92, 40.32, 61.58, 84.03, 107.95, 133.65, 161.42, 191.56\r\n4, 15.25, 30.98, 47.57, 65.31, 84.49, 105.41, 128.37, 153.71\r\n4.5, 11.62, 23.73, 36.66, 50.69, 66.08, 83.13, 102.12, 123.39\r\n5, 8.75, 17.99, 28.02, 39.09, 51.45, 65.35, 81.09, 98.98\r\n5.5, 6.45, 13.39, 21.07, 29.75, 39.63, 50.98, 64.04, 79.12\r\n6, 4.57, 9.61, 15.38, 22.09, 29.95, 39.18, 50.02, 62.76\r\n6.5, 3.01, 6.48, 10.66, 15.73, 21.9, 29.36, 38.34, 49.11\r\n7, 1.7, 3.85, 6.68, 10.38, 15.11, 21.09, 28.5, 37.59\r\n7.5, 0.58, 1.6, 3.29, 5.81, 9.33, 14.03, 20.1, 27.76\r\n8, -0.39, -0.33, 0.37, 1.88, 4.36, 7.96, 12.87, 19.3\r\n8.5, -1.23, -2.01, -2.17, -1.53, 0.03, 2.68, 6.58, 11.94\r\n9, -1.96, -3.49, -4.39, -4.53, -3.76, -1.95, 1.07, 5.49\r\n9.5, -2.61, -4.79, -6.35, -7.17, -7.11, -6.03, -3.79, -0.21\r\n10, -3.19, -5.94, -8.1, -9.52, -10.09, -9.67, -8.12, -5.27\r\n10.5, -3.71, -6.98, -9.66, -11.63, -12.75, -12.91, -11.98, -9.8\r\n11, -4.17, -7.91, -11.07, -13.52, -15.15, -15.84, -15.46, -13.87\r\n11.5, -4.59, -8.76, -12.34, -15.23, -17.31, -18.48, -18.6, -17.54\r\n12, -4.97, -9.52, -13.5, -16.78, -19.28, -20.87, -21.45, -20.88\r\n12.5, -5.32, -10.22, -14.55, -18.2, -21.07, -23.06, -24.05, -23.92\r\n13, -5.64, -10.86, -15.51, -19.5, -22.72, -25.06, -26.43, -26.71\r\n13.5, -5.94, -11.45, -16.4, -20.69, -24.23, -26.9, -28.62, -29.26\r\n14, -6.21, -11.99, -17.22, -21.79, -25.62, -28.6, -30.64, -31.62\r\n14.5, -6.46, -12.49, -17.98, -22.81, -26.9, -30.16, -32.5, -33.8\r\n15, -6.69, -12.96, -18.68, -23.75, -28.1, -31.62, -34.23, -35.82\r\n15.5, -6.91, -13.39, -19.33, -24.63, -29.21, -32.97, -35.83, -37.69\r\n16, -7.11, -13.79, -19.94, -25.45, -30.24, -34.23, -37.33, -39.44\r\n16.5, -7.3, -14.17, -20.51, -26.21, -31.21, -35.41, -38.73, -41.08\r\n17, -7.47, -14.53, -21.04, -26.93, -32.11, -36.51, -40.04, -42.6\r\n17.5, -7.64, -14.86, -21.54, -27.6, -32.96, -37.54, -41.26, -44.04\r\n18, -7.79, -15.17, -22.01, -28.23, -33.76, -38.51, -42.42, -45.38\r\n18.5, -7.94, -15.46, -22.45, -28.83, -34.51, -39.43, -43.5, -46.65\r\n19, -8.08, -15.74, -22.87, -29.39, -35.22, -40.29, -44.53, -47.85\r\n19.5, -8.21, -16, -23.27, -29.92, -35.89, -41.11, -45.5, -48.98\r\n20, -8.33, -16.25, -23.64, -30.42, -36.52, -41.88, -46.41, -50.05\r\n20.5, -8.45, -16.49, -23.99, -30.9, -37.12, -42.61, -47.28, -51.06\r\n21, -8.56, -16.71, -24.33, -31.35, -37.7, -43.3, -48.1, -52.02\r\n21.5, -8.67, -16.92, -24.65, -31.78, -38.24, -43.96, -48.89, -52.93\r\n22, -8.77, -17.12, -24.95, -32.19, -38.75, -44.59, -49.63, -53.8\r\n22.5, -8.87, -17.32, -25.24, -32.58, -39.24, -45.19, -50.34, -54.63\r\n23, -8.96, -17.5, -25.52, -32.95, -39.71, -45.76, -51.01, -55.42\r\n23.5, -9.04, -17.67, -25.78, -33.3, -40.16, -46.3, -51.66, -56.17\r\n24, -9.13, -17.84, -26.04, -33.64, -40.59, -46.82, -52.28, -56.89\r\n24.5, -9.21, -18, -26.28, -33.96, -41, -47.32, -52.87, -57.58\r\n25, -9.29, -18.16, -26.51, -34.27, -41.39, -47.8, -53.43, -58.23\r\n26, -9.29, -18.16, -26.51, -34.27, -41.39, -47.8, -53.43, -58.23\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 215/55 R17\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 215/55 R17\r\n#Category: Touring Tires\r\n#FileID  : TireMz103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:31\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz103.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`215/55 R17` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy103.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`215/55 R17`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1593.58, 3187.16, 4780.74, 6374.32, 7967.9, 9561.48, 11155.06, 12748.65\r\n0.5, 248.08, 483.5, 704.46, 910.03, 1099.7, 1273.15, 1430.26, 1571\r\n1, 486, 947.74, 1381.71, 1786.09, 2159.81, 2502.21, 2812.97, 3091.98\r\n1.5, 704.93, 1375.9, 2007.9, 2598.26, 3145.3, 3647.98, 4105.65, 4518.01\r\n2, 898.46, 1755.66, 2565.35, 3324.08, 4029.58, 4680.29, 5275.2, 5813.66\r\n2.5, 1063.18, 2080.29, 3044.12, 3950.55, 4796.73, 5580.62, 6300.7, 6955.9\r\n3, 1198.64, 2348.57, 3441.97, 4474.17, 5441.86, 6342.46, 7173.99, 7934.9\r\n3.5, 1306.65, 2563.69, 3762.95, 4899.4, 5969.31, 6969.71, 7898.17, 8752.65\r\n4, 1390.46, 2731.63, 4015.21, 5235.95, 6389.87, 7473.66, 8484.53, 9420.05\r\n4.5, 1453.91, 2859.62, 4208.83, 5496.25, 6717.72, 7869.74, 8949.25, 9953.51\r\n5, 1500.82, 2954.92, 4354.16, 5693.25, 6967.99, 8174.77, 9310.36, 10371.82\r\n5.5, 1534.64, 3024.19, 4460.73, 5839.08, 7155.04, 8404.98, 9585.61, 10693.86\r\n6, 1558.28, 3073.11, 4536.82, 5944.36, 7291.62, 8574.99, 9791.17, 10937.07\r\n6.5, 1574.12, 3106.35, 4589.27, 6017.99, 7388.5, 8697.27, 9941.07, 11116.8\r\n7, 1584.05, 3127.63, 4623.58, 6067.16, 7454.5, 8782.18, 10047.02, 11246\r\n7.5, 1589.54, 3139.87, 4644.08, 6097.61, 7496.7, 8838.05, 10118.59, 11335.38\r\n8, 1591.7, 3145.32, 4654.17, 6113.82, 7520.67, 8871.54, 10163.46, 11393.59\r\n8.5, 1591.4, 3145.71, 4656.43, 6119.28, 7530.79, 8887.88, 10187.72, 11427.56\r\n9, 1589.29, 3142.36, 4652.87, 6116.68, 7530.43, 8891.17, 10196.16, 11442.78\r\n9.5, 1585.88, 3136.27, 4645.01, 6108.08, 7522.22, 8884.59, 10192.55, 11443.6\r\n10, 1581.52, 3128.2, 4634.02, 6095.06, 7508.17, 8870.59, 10179.81, 11433.4\r\n10.5, 1576.5, 3118.73, 4620.79, 6078.84, 7489.83, 8851.11, 10160.22, 11414.86\r\n11, 1571.04, 3108.3, 4605.98, 6060.34, 7468.41, 8827.6, 10135.56, 11390.06\r\n11.5, 1565.3, 3097.24, 4590.13, 6040.29, 7444.82, 8801.22, 10107.2, 11360.64\r\n12, 1559.4, 3085.8, 4573.6, 6019.2, 7419.76, 8772.84, 10076.22, 11327.85\r\n12.5, 1553.42, 3074.17, 4556.71, 5997.51, 7393.78, 8743.14, 10043.45, 11292.71\r\n13, 1547.43, 3062.48, 4539.67, 5975.51, 7367.28, 8712.65, 10009.53, 11255.98\r\n13.5, 1541.49, 3050.85, 4522.65, 5953.45, 7340.58, 8681.76, 9974.95, 11218.26\r\n14, 1535.63, 3039.34, 4505.77, 5931.51, 7313.93, 8650.78, 9940.1, 11180.02\r\n14.5, 1529.87, 3028.02, 4489.12, 5909.81, 7287.49, 8619.95, 9905.26, 11141.62\r\n15, 1524.24, 3016.93, 4472.78, 5888.46, 7261.4, 8589.44, 9870.67, 11103.34\r\n15.5, 1518.75, 3006.09, 4456.78, 5867.52, 7235.76, 8559.37, 9836.49, 11065.39\r\n16, 1513.4, 2995.53, 4441.16, 5847.04, 7210.63, 8529.85, 9802.84, 11027.93\r\n16.5, 1508.2, 2985.25, 4425.95, 5827.05, 7186.08, 8500.94, 9769.82, 10991.07\r\n17, 1503.15, 2975.26, 4411.14, 5807.59, 7162.12, 8472.69, 9737.49, 10954.92\r\n17.5, 1498.25, 2965.56, 4396.76, 5788.65, 7138.78, 8445.12, 9705.9, 10919.52\r\n18, 1493.51, 2956.15, 4382.78, 5770.24, 7116.07, 8418.26, 9675.07, 10884.92\r\n18.5, 1488.91, 2947.02, 4369.23, 5752.35, 7093.98, 8392.12, 9645.02, 10851.14\r\n19, 1484.45, 2938.18, 4356.07, 5734.99, 7072.52, 8366.68, 9615.76, 10818.21\r\n19.5, 1480.14, 2929.6, 4343.32, 5718.14, 7051.68, 8341.96, 9587.28, 10786.11\r\n20, 1475.96, 2921.3, 4330.95, 5701.79, 7031.44, 8317.92, 9559.57, 10754.86\r\n20.5, 1471.91, 2913.25, 4318.96, 5685.93, 7011.79, 8294.58, 9532.63, 10724.44\r\n21, 1467.98, 2905.45, 4307.34, 5670.55, 6992.71, 8271.89, 9506.43, 10694.84\r\n21.5, 1464.18, 2897.89, 4296.06, 5655.62, 6974.19, 8249.86, 9480.97, 10666.04\r\n22, 1460.5, 2890.56, 4285.13, 5641.13, 6956.21, 8228.45, 9456.21, 10638.03\r\n22.5, 1456.93, 2883.45, 4274.52, 5627.07, 6938.75, 8207.66, 9432.15, 10610.78\r\n23, 1453.47, 2876.55, 4264.23, 5613.43, 6921.8, 8187.45, 9408.76, 10584.27\r\n23.5, 1450.11, 2869.87, 4254.25, 5600.18, 6905.33, 8167.82, 9386.01, 10558.48\r\n24, 1446.86, 2863.37, 4244.55, 5587.31, 6889.33, 8148.73, 9363.89, 10533.38\r\n24.5, 1443.69, 2857.07, 4235.13, 5574.81, 6873.79, 8130.18, 9342.38, 10508.96\r\n25, 1440.63, 2850.95, 4225.98, 5562.66, 6858.67, 8112.14, 9321.44, 10485.19\r\n26, 1440.63, 2850.95, 4225.98, 5562.66, 6858.67, 8112.14, 9321.44, 10485.19\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 215/55 R17\r\n#Library : Tire: Lateral Force\r\n#DataSet : 215/55 R17\r\n#Category: Touring Tires\r\n#FileID  : TireFy103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy103.par\r\n\r\n#BlueLink1 Tire: Lateral Force`215/55 R17` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx103.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`215/55 R17`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1593.58, 3187.16, 4780.74, 6374.32, 7967.9, 9561.48, 11155.06, 12748.65\r\n0.02, 866.05, 1702.47, 2504.68, 3270.08, 3996.91, 4683.85, 5329.94, 5934.48\r\n0.04, 1297.02, 2555.8, 3770.2, 4936.54, 6052.18, 7115.02, 8123.39, 9075.89\r\n0.06, 1471.85, 2904.23, 4290.68, 5627.28, 6911.13, 8139.89, 9311.59, 10424.58\r\n0.08, 1545.6, 3051.97, 4512.64, 5923.67, 7282.08, 8585.47, 9831.8, 11019.3\r\n0.1, 1577.33, 3115.96, 4609.52, 6054.07, 7446.63, 8784.79, 10066.48, 11289.9\r\n0.12, 1589.5, 3140.9, 4647.9, 6106.6, 7514.05, 8867.84, 10165.9, 11406.43\r\n0.14, 1591.76, 3145.99, 4656.47, 6119.35, 7531.7, 8891.14, 10195.61, 11443.29\r\n0.16, 1588.74, 3140.47, 4649.06, 6110.7, 7522.49, 8882.06, 10187.38, 11436.63\r\n0.18, 1582.86, 3129.18, 4632.91, 6090.28, 7498.42, 8854.99, 10157.96, 11405.55\r\n0.2, 1575.45, 3114.8, 4612.04, 6063.46, 7466.22, 8817.98, 10116.76, 11360.75\r\n0.22, 1567.3, 3098.87, 4588.79, 6033.36, 7429.78, 8775.74, 10069.25, 11308.54\r\n0.24, 1558.85, 3082.33, 4564.54, 6001.84, 7391.45, 8731.07, 10018.74, 11252.71\r\n0.26, 1550.39, 3065.72, 4540.14, 5970.03, 7352.65, 8685.71, 9967.27, 11195.59\r\n0.28, 1542.08, 3049.37, 4516.08, 5938.61, 7314.24, 8640.71, 9916.07, 11138.62\r\n0.3, 1534.02, 3033.49, 4492.67, 5907.99, 7276.75, 8596.7, 9865.92, 11082.7\r\n0.32, 1526.25, 3018.18, 4470.08, 5878.41, 7240.48, 8554.07, 9817.27, 11028.37\r\n0.34, 1518.81, 3003.5, 4448.4, 5849.99, 7205.61, 8513.03, 9770.37, 10975.93\r\n0.36, 1511.7, 2989.47, 4427.66, 5822.79, 7172.2, 8473.68, 9725.35, 10925.54\r\n0.38, 1504.92, 2976.09, 4407.88, 5796.82, 7140.27, 8436.04, 9682.26, 10877.27\r\n0.4, 1498.48, 2963.35, 4389.03, 5772.06, 7109.82, 8400.12, 9641.1, 10831.12\r\n0.42, 1492.34, 2951.22, 4371.08, 5748.48, 7080.79, 8365.85, 9601.82, 10787.04\r\n0.44, 1486.51, 2939.69, 4354, 5726.02, 7053.13, 8333.19, 9564.36, 10744.99\r\n0.46, 1480.96, 2928.72, 4337.75, 5704.64, 7026.79, 8302.07, 9528.64, 10704.87\r\n0.48, 1475.69, 2918.28, 4322.27, 5684.28, 7001.7, 8272.41, 9494.58, 10666.59\r\n0.5, 1470.66, 2908.34, 4307.54, 5664.88, 6977.78, 8244.13, 9462.1, 10630.08\r\n0.52, 1465.88, 2898.87, 4293.5, 5646.4, 6954.99, 8217.16, 9431.11, 10595.23\r\n0.54, 1461.33, 2889.85, 4280.12, 5628.77, 6933.24, 8191.43, 9401.54, 10561.95\r\n0.56, 1456.98, 2881.24, 4267.35, 5611.95, 6912.49, 8166.87, 9373.29, 10530.16\r\n0.58, 1452.84, 2873.03, 4255.17, 5595.89, 6892.67, 8143.41, 9346.3, 10499.78\r\n0.6, 1448.88, 2865.19, 4243.53, 5580.55, 6873.73, 8120.98, 9320.5, 10470.72\r\n0.62, 1445.1, 2857.69, 4232.4, 5565.89, 6855.62, 8099.52, 9295.81, 10442.91\r\n0.64, 1441.48, 2850.53, 4221.76, 5551.85, 6838.28, 8078.98, 9272.17, 10416.28\r\n0.66, 1438.02, 2843.66, 4211.57, 5538.41, 6821.68, 8059.31, 9249.53, 10390.76\r\n0.68, 1434.7, 2837.09, 4201.81, 5525.54, 6805.78, 8040.46, 9227.82, 10366.28\r\n0.7, 1431.53, 2830.79, 4192.45, 5513.19, 6790.52, 8022.37, 9206.99, 10342.8\r\n0.72, 1428.48, 2824.75, 4183.47, 5501.35, 6775.88, 8005.01, 9186.99, 10320.25\r\n0.74, 1425.55, 2818.95, 4174.85, 5489.97, 6761.82, 7988.34, 9167.78, 10298.59\r\n0.76, 1422.74, 2813.37, 4166.57, 5479.04, 6748.31, 7972.31, 9149.32, 10277.76\r\n0.78, 1420.04, 2808.02, 4158.61, 5468.53, 6735.31, 7956.9, 9131.55, 10257.72\r\n0.8, 1417.44, 2802.86, 4150.95, 5458.42, 6722.81, 7942.07, 9114.46, 10238.43\r\n0.82, 1414.94, 2797.9, 4143.57, 5448.69, 6710.77, 7927.78, 9097.99, 10219.85\r\n0.84, 1412.54, 2793.12, 4136.47, 5439.31, 6699.17, 7914.02, 9082.12, 10201.94\r\n0.86, 1410.22, 2788.52, 4129.63, 5430.27, 6687.99, 7900.75, 9066.82, 10184.67\r\n0.88, 1407.98, 2784.08, 4123.02, 5421.55, 6677.2, 7887.95, 9052.06, 10168.01\r\n0.9, 1405.82, 2779.8, 4116.65, 5413.14, 6666.79, 7875.59, 9037.81, 10151.92\r\n0.92, 1403.74, 2775.66, 4110.5, 5405.02, 6656.74, 7863.66, 9024.04, 10136.37\r\n0.94, 1401.72, 2771.66, 4104.56, 5397.17, 6647.02, 7852.12, 9010.74, 10121.35\r\n0.96, 1399.78, 2767.8, 4098.81, 5389.58, 6637.63, 7840.97, 8997.88, 10106.82\r\n0.98, 1397.9, 2764.07, 4093.26, 5382.24, 6628.55, 7830.19, 8985.43, 10092.77\r\n1, 1396.08, 2760.45, 4087.88, 5375.14, 6619.76, 7819.75, 8973.38, 10079.16\r\n1.02, 1396.08, 2760.45, 4087.88, 5375.14, 6619.76, 7819.75, 8973.38, 10079.16\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 215/55 R17\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 215/55 R17\r\n#Category: Touring Tires\r\n#FileID  : TireFx103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx103.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`215/55 R17` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff103.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`215/55 R17`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n637.43225, -6.0332\r\n1274.8645, -12.0864\r\n1912.29675, -18.1682\r\n2549.729, -24.2854\r\n3187.16125, -30.4433\r\n3824.5935, -36.6469\r\n4462.02575, -42.9005\r\n5099.458, -49.2081\r\n5736.89025, -55.5734\r\n6374.3225, -62\r\n7011.75475, -68.4912\r\n7649.187, -75.05\r\n8286.61925, -81.6797\r\n8924.0515, -88.3829\r\n9561.48375, -95.1626\r\n10198.916, -102.0213\r\n10836.34825, -108.9617\r\n11473.7805, -115.9864\r\n12111.21275, -123.0976\r\n12748.645, -130.2979\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 215/55 R17\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 215/55 R17\r\n#Category: Touring Tires\r\n#FileID  : CamStiff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff103.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`215/55 R17` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 215/55 R17\r\n#Library : Tire\r\n#DataSet : 215/55 R17\r\n#Category: Touring Tires\r\n#FileID  : Tire103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire103_note.txt\r\n650 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire103_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire103.par\r\n\r\n#BlueLink9 Tire`215/55 R17` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`215/55 R17` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp106.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`D-Class, Sedan - Rear Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*FS_OFFSET_L 0\r\n*FS_OFFSET_R 0\r\n*CT_FX_L 0\r\n*CT_FX_R 0\r\n*CS_FY_L -0.10e-6\r\n*CS_FY_R -0.10e-6\r\n*CS_MZ_L 0.190e-4\r\n*CS_MZ_R 0.190e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 2.9e-5\r\n*CI_FY_R 2.9e-5\r\n*CI_MZ_L 0\r\n*CI_MZ_R 0\r\n*C_LONG_L 7e-5\r\n*C_LONG_R 7e-5\r\n*C_LAT_L 3.8e-5\r\n*C_LAT_R 3.8e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 344\r\n\r\nMX_AUX_COEFFICIENT 344\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 344 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 344 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nFS_OFFSET 0\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT -0.10e-6\r\nCS_MZ_COEFFICIENT 0.190e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 2.9e-5\r\nCI_MZ_COEFFICIENT 0\r\nC_LONG_COEFFICIENT 7e-5\r\nC_LAT_COEFFICIENT 3.8e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring106.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`82 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 82\r\nFS_EXT_COEFFICIENT 82\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 82\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 82 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 82 N/mm\r\n#Category:\r\n#FileID  : Spring106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring106.par\r\n\r\n#BlueLink0 Suspension: Spring`82 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nFS_OFFSET 0\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT -0.10e-6\r\nCS_MZ_COEFFICIENT 0.190e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 2.9e-5\r\nCI_MZ_COEFFICIENT 0\r\nC_LONG_COEFFICIENT 7e-5\r\nC_LAT_COEFFICIENT 3.8e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`82 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS D-Class } D-Class, Sedan - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : D-Class, Sedan - Rear Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmp106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp106_note.txt\r\nRear spring rate chosen for a rear ride frequency of 2.2 Hz and a rear corner weight of 273 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp106_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp106.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`D-Class, Sedan - Rear Comp.` CS D-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin106.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`D-Class, Sedan - Rear Suspension`CS D-Class\r\niside 1\r\nL_TRACK 1550\r\nY_CL_SUSP 0\r\nM_US 80\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0\r\n*TOE_R 0\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive104.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear Tri-Link Strut - No Dive`Tri-Link Strut\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { Tri-Link Strut } Rear Tri-Link Strut - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear Tri-Link Strut - No Dive\r\n#Category: Tri-Link Strut\r\n#FileID  : Dive104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive104_note.txt\r\nGeneric Rear Tri-Link strut suspension Dive angle change vs. Jounce.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive104_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive104.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear Tri-Link Strut - No Dive` Tri-Link Strut` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX104.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear Tri-Link Strut - Longitudinal Movement`Tri-Link Strut\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-150, 34.0109\r\n-135, 29.0492\r\n-120, 24.4735\r\n-105, 20.2638\r\n-90, 16.4039\r\n-75, 12.8801\r\n-60, 9.68167\r\n-45, 6.79994\r\n-30, 4.22844\r\n-15, 1.96266\r\n0, 0\r\n15, -1.66025\r\n30, -3.01692\r\n45, -4.06686\r\n60, -4.8048\r\n75, -5.22318\r\n90, -5.31173\r\n105, -5.05706\r\n120, -4.44179\r\n135, -3.4432\r\n150, -2.03055\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-150, 34.0109\r\n-135, 29.0492\r\n-120, 24.4735\r\n-105, 20.2638\r\n-90, 16.4039\r\n-75, 12.8801\r\n-60, 9.68167\r\n-45, 6.79994\r\n-30, 4.22844\r\n-15, 1.96266\r\n0, 0\r\n15, -1.66025\r\n30, -3.01692\r\n45, -4.06686\r\n60, -4.8048\r\n75, -5.22318\r\n90, -5.31173\r\n105, -5.05706\r\n120, -4.44179\r\n135, -3.4432\r\n150, -2.03055\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { Tri-Link Strut } Rear Tri-Link Strut - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear Tri-Link Strut - Longitudinal Movement\r\n#Category: Tri-Link Strut\r\n#FileID  : SusX104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX104_note.txt\r\nGeneric Rear Tri-Link strut suspension Longitudinal movement vs. Jounce.\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX104_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX104.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear Tri-Link Strut - Longitudinal Movement` Tri-Link Strut` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber104.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Rear Tri-Link Strut - Camber Change`Tri-Link Strut\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-150, 5.44524\r\n-135, 4.65501\r\n-120, 3.92781\r\n-105, 3.25928\r\n-90, 2.64586\r\n-75, 2.08471\r\n-60, 1.5736\r\n-45, 1.11074\r\n-30, 0.694784\r\n-15, 0.32476\r\n0, 0\r\n15, -0.279867\r\n30, -0.514945\r\n45, -0.705085\r\n60, -0.849884\r\n75, -0.948682\r\n90, -1.00053\r\n105, -1.00416\r\n120, -0.957857\r\n135, -0.85927\r\n150, -0.705008\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { Tri-Link Strut } Rear Tri-Link Strut - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Rear Tri-Link Strut - Camber Change\r\n#Category: Tri-Link Strut\r\n#FileID  : Camber104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber104_note.txt\r\nGeneric Rear Tri-Link strut suspension Camber change vs. Jounce.\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber104_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber104.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear Tri-Link Strut - Camber Change` Tri-Link Strut` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat104.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear Tri-Link Strut - Lateral Movement`Tri-Link Strut\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-150, 34.7232\r\n-135, 28.9298\r\n-120, 23.7162\r\n-105, 19.0508\r\n-90, 14.9073\r\n-75, 11.2635\r\n-60, 8.10101\r\n-45, 5.40464\r\n-30, 3.16193\r\n-15, 1.36294\r\n0, 0\r\n15, -0.932437\r\n30, -1.43789\r\n45, -1.51794\r\n60, -1.1722\r\n75, -0.398333\r\n90, 0.808049\r\n105, 2.45344\r\n120, 4.54658\r\n135, 7.09849\r\n150, 10.1225\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-150, 34.7232\r\n-135, 28.9298\r\n-120, 23.7162\r\n-105, 19.0508\r\n-90, 14.9073\r\n-75, 11.2635\r\n-60, 8.10101\r\n-45, 5.40464\r\n-30, 3.16193\r\n-15, 1.36294\r\n0, 0\r\n15, -0.932437\r\n30, -1.43789\r\n45, -1.51794\r\n60, -1.1722\r\n75, -0.398333\r\n90, 0.808049\r\n105, 2.45344\r\n120, 4.54658\r\n135, 7.09849\r\n150, 10.1225\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { Tri-Link Strut } Rear Tri-Link Strut - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear Tri-Link Strut - Lateral Movement\r\n#Category: Tri-Link Strut\r\n#FileID  : SusLat104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat104_note.txt\r\nGeneric Rear Tri-Link strut suspension Lateral movement vs. Jounce.\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat104_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat104.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear Tri-Link Strut - Lateral Movement` Tri-Link Strut` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe104.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Rear Tri-Link Strut - Toe Change`Tri-Link Strut\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-150, -0.230886\r\n-135, -0.137958\r\n-120, -0.067203\r\n-105, -0.0158\r\n-90, 0.018818\r\n-75, 0.03903\r\n-60, 0.047078\r\n-45, 0.045112\r\n-30, 0.035225\r\n-15, 0.019492\r\n0, 0\r\n15, -0.021118\r\n30, -0.041648\r\n45, -0.059255\r\n60, -0.071439\r\n75, -0.075487\r\n90, -0.068408\r\n105, -0.046854\r\n120, -0.007025\r\n135, 0.055466\r\n150, 0.145778\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { Tri-Link Strut } Rear Tri-Link Strut - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Rear Tri-Link Strut - Toe Change\r\n#Category: Tri-Link Strut\r\n#FileID  : Toe104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe104_note.txt\r\nGeneric Rear Tri-Link strut suspension Toe change vs. Jounce.\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe104_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe104.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear Tri-Link Strut - Toe Change` Tri-Link Strut` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0\r\nA_CAMBER 0\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear Tri-Link Strut - No Dive` Tri-Link Strut` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear Tri-Link Strut - Longitudinal Movement` Tri-Link Strut` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear Tri-Link Strut - Camber Change` Tri-Link Strut` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear Tri-Link Strut - Lateral Movement` Tri-Link Strut` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear Tri-Link Strut - Toe Change` Tri-Link Strut` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0\r\nA_CAMBER 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS D-Class } D-Class, Sedan - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : D-Class, Sedan - Rear Suspension\r\n#Category: CS D-Class\r\n#FileID  : IndKin106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin106_note.txt\r\nGeneric Tri-Link Strut type suspension geometry generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin106_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin106.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`D-Class, Sedan - Rear Suspension` CS D-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`215/55 R17` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`215/55 R17` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass103.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`D-Class, Sedan Sprung Mass`CS D-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 2780\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 3850\r\nH_H 500\r\nH_CG_SU 520\r\nLX_AXLE 2780\r\nLX_CG_SU 1110\r\nM_SU 1370\r\nIXX_SU 671.3\r\nIYY_SU 1972.8\r\nIZZ_SU 2315.3\r\nIXZ_SU 0\r\nRX_SGUI 0.700\r\nRY_SGUI 1.200\r\nRZ_SGUI 1.300\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1471\r\nY_LENGTH 1795\r\n*HWC_LF 340\r\n*HWC_RF 340\r\n*HWC_LR 325\r\n*HWC_RR 325\r\n\r\nH_WC 325\r\niside 2\r\nH_WC 325\r\niaxle 1\r\niside 1\r\nH_WC 340\r\niside 2\r\nH_WC 340\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS D-Class } D-Class, Sedan Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : D-Class, Sedan Sprung Mass\r\n#Category: CS D-Class\r\n#FileID  : SprMass103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass103.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`D-Class, Sedan Sprung Mass` CS D-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero115.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`Scaleable Example Aero Properties`\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -2775/2\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 2775\r\nAREA_AERO 2.3\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; Scaleable Example Aero Properties\r\n#Library : Aerodynamics: Basic\r\n#DataSet : Scaleable Example Aero Properties\r\n#Category:\r\n#FileID  : Aero115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero115_note.txt\r\nBy convention, the aerodynamic reference point is located at ground level, on the vehicle centerline, one-half the wheel base behind the front axle.\r\n\r\nThe reference length is set to the wheelbase, also by convention.\r\n\r\nIf your aerodynamic data is based on forces and moments at the vehicle CG, place the reference point there.\r\n\r\nThe frontal area (2.3 m2) is typical of vehicles like Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero115_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero115.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`Scaleable Example Aero Properties` ` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh103.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`D-Class, Sedan`D-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 2711\r\nOBJ_Y_LENGTH 1753\r\nOBJ_Z_LENGTH 1433\r\n*DZ_V -80\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 280\r\n*WHEEL_RATIO 1.1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X -2.711\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -2.711\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT -0.08\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup109.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`D-Class, Sedan`CS D-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.25\r\n*X_REF_LENGTH 2711\r\n*Y_REF_LENGTH 1753\r\n*Z_REF_LENGTH 1433\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL128.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Body`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .6\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Body\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL128.par\r\n\r\n#BlueLink0 Animator: Shape File Link`European Sedan: Body` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL129.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Details`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Details\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL129.par\r\n\r\n#BlueLink1 Animator: Shape File Link`European Sedan: Details` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL130.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Windows`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0\r\n*SPECULAR 1\r\n*TRANSPARENCY 0.7\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.7\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Windows\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL130.par\r\n\r\n#BlueLink2 Animator: Shape File Link`European Sedan: Windows` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL131.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Interior Trim`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\interior_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Interior Trim\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Interior Trim\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL131.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Interior Trim` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL132.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Steering Wheel`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Steering Wheel\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL132.par\r\n\r\n#BlueLink4 Animator: Shape File Link`European Sedan: Steering Wheel` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL133.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Seats`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Seats\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL133\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL133.par\r\n\r\n#BlueLink5 Animator: Shape File Link`European Sedan: Seats` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL134.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Driver`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.69 0.69 0.69\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Driver\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL134\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL134.par\r\n\r\n#BlueLink13 Animator: Shape File Link`European Sedan: Driver` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nx_ref_length 2711\r\ny_ref_length 1753\r\nz_ref_length 1433\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS D-Class } D-Class, Sedan\r\n#Library : Animator: Shape Assembly\r\n#DataSet : D-Class, Sedan\r\n#Category: CS D-Class\r\n#FileID  : StlGroup109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup109.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`D-Class, Sedan` CS D-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL139.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Brake Lights (D-Class)`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 .8 .8\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.01\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.25\r\nX_REF_LENGTH 2711\r\nY_REF_LENGTH 1753\r\nZ_REF_LENGTH 1433\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Brake Lights (D-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Brake Lights (D-Class)\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL139\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL139.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Brake Lights (D-Class)` CS European Sedan` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { D-Class Vehicles } D-Class, Sedan\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : D-Class, Sedan\r\n#Category: D-Class Vehicles\r\n#FileID  : AniVeh103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh103_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh103_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh103.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`D-Class, Sedan` D-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 0\r\nPMAX_SC 201\r\nENTER_PARSFILE Powertrain\\Fwd\\FWD102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front-Wheel Drive`150 kW, 6-spd., 4.1 Ratio`\r\n\r\nOPT_PT 1\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\n\r\n#RingCtrl0 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl1 1\r\n#RingCtrl2 2\r\n#RingCtrl3 1\r\n#RingCtrl4 1\r\nR_MDRIVE 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine110.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`150 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.2\r\n\r\n#CheckBox0 0\r\nOPT_THROTTLE_DELAY 0\r\n\r\nENTER_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par`08-02-2011`16:42:52\r\n#FullDataName Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Fuel rate (kg/sec)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 26, 19 ! columns x rows\r\nFUEL_RATE_CARPET\r\n0, 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1\r\n600, 8e-05, 0.0002, 0.0003, 0.00032, 0.00034, 0.00037, 0.00039, 0.00041, 0.00043, 0.00046, 0.00048, 0.0005, 0.00052, 0.00055, 0.00057, 0.00059, 0.00061, 0.00064, 0.00066, 0.00068, 0.0007, 0.00073, 0.00075, 0.00077, 0.00079, 0.00082\r\n800, 0.00013, 0.0002, 0.0004, 0.00059, 0.00071, 0.0008, 0.00083, 0.00085, 0.00086, 0.00087, 0.00088, 0.00089, 0.0009, 0.00091, 0.00092, 0.00093, 0.00094, 0.00096, 0.00097, 0.00098, 0.00099, 0.001, 0.00101, 0.00102, 0.00103, 0.00104\r\n1000, 0.00016, 0.0002, 0.00039, 0.00062, 0.00079, 0.00091, 0.00099, 0.00104, 0.00107, 0.00108, 0.00109, 0.00111, 0.00112, 0.00113, 0.00114, 0.00115, 0.00117, 0.00118, 0.00119, 0.0012, 0.00121, 0.00123, 0.00124, 0.00125, 0.00126, 0.00127\r\n1200, 0.00016, 0.00021, 0.00039, 0.00064, 0.00088, 0.00104, 0.00114, 0.00123, 0.00128, 0.00131, 0.00133, 0.00134, 0.00135, 0.00137, 0.00138, 0.0014, 0.00141, 0.00142, 0.00144, 0.00145, 0.00147, 0.00148, 0.00149, 0.00151, 0.00152, 0.00154\r\n1400, 0.00017, 0.00023, 0.00039, 0.00066, 0.00091, 0.00113, 0.0013, 0.0014, 0.00148, 0.00153, 0.00156, 0.00158, 0.0016, 0.00161, 0.00163, 0.00165, 0.00167, 0.00168, 0.0017, 0.00172, 0.00174, 0.00175, 0.00177, 0.00179, 0.00181, 0.00182\r\n1600, 0.0002, 0.00026, 0.0004, 0.00066, 0.00095, 0.00119, 0.00139, 0.00154, 0.00164, 0.00173, 0.00178, 0.00181, 0.00183, 0.00184, 0.00186, 0.00188, 0.0019, 0.00192, 0.00194, 0.00195, 0.00197, 0.00199, 0.00201, 0.00203, 0.00205, 0.00207\r\n1800, 0.00021, 0.00028, 0.00039, 0.00067, 0.00095, 0.00124, 0.00147, 0.00166, 0.00178, 0.00189, 0.00195, 0.002, 0.00203, 0.00206, 0.00209, 0.00212, 0.00215, 0.00218, 0.00222, 0.00225, 0.00228, 0.00231, 0.00234, 0.00237, 0.0024, 0.00243\r\n2000, 0.00023, 0.0003, 0.00038, 0.00065, 0.00096, 0.00129, 0.00156, 0.00178, 0.00195, 0.00207, 0.00215, 0.00221, 0.00227, 0.00231, 0.00234, 0.00238, 0.00241, 0.00245, 0.00249, 0.00252, 0.00256, 0.00259, 0.00263, 0.00267, 0.0027, 0.00274\r\n2200, 0.00025, 0.00033, 0.00041, 0.00065, 0.00098, 0.0013, 0.00162, 0.00189, 0.00212, 0.00226, 0.00239, 0.00246, 0.00252, 0.00257, 0.00261, 0.00264, 0.00268, 0.00272, 0.00275, 0.00279, 0.00282, 0.00286, 0.0029, 0.00293, 0.00297, 0.003\r\n2400, 0.00027, 0.00036, 0.00044, 0.00065, 0.00095, 0.00133, 0.00168, 0.00199, 0.00223, 0.0024, 0.00255, 0.00265, 0.00272, 0.00278, 0.00284, 0.0029, 0.00296, 0.00302, 0.00308, 0.00314, 0.00319, 0.00325, 0.00331, 0.00337, 0.00343, 0.00349\r\n2800, 0.00033, 0.00039, 0.00046, 0.00065, 0.00097, 0.00134, 0.00174, 0.00207, 0.00239, 0.00265, 0.0028, 0.00296, 0.00307, 0.00313, 0.0032, 0.00326, 0.00331, 0.00336, 0.00342, 0.00347, 0.00352, 0.00357, 0.00363, 0.00368, 0.00373, 0.00379\r\n3200, 0.00038, 0.00045, 0.00053, 0.00064, 0.00097, 0.00136, 0.00175, 0.00216, 0.00256, 0.00287, 0.0031, 0.00326, 0.00343, 0.00365, 0.00388, 0.0041, 0.00424, 0.00425, 0.00427, 0.00429, 0.0043, 0.00432, 0.00434, 0.00435, 0.00437, 0.00439\r\n3600, 0.00043, 0.00052, 0.00061, 0.0007, 0.00095, 0.00137, 0.00179, 0.00221, 0.00272, 0.00315, 0.00347, 0.00384, 0.00423, 0.00463, 0.00487, 0.00495, 0.00502, 0.00509, 0.00513, 0.00514, 0.00516, 0.00517, 0.00519, 0.0052, 0.00521, 0.00523\r\n4000, 0.00047, 0.00059, 0.00083, 0.00118, 0.00162, 0.0021, 0.00259, 0.00317, 0.00367, 0.00403, 0.00436, 0.00487, 0.00537, 0.00587, 0.00603, 0.00608, 0.00614, 0.0062, 0.00624, 0.00625, 0.00626, 0.00627, 0.00629, 0.0063, 0.00631, 0.00633\r\n4400, 0.00051, 0.00064, 0.00085, 0.00122, 0.00165, 0.00218, 0.0027, 0.00333, 0.00392, 0.00443, 0.00477, 0.00514, 0.00568, 0.00621, 0.00675, 0.00703, 0.00709, 0.00715, 0.00721, 0.00726, 0.00731, 0.00732, 0.00733, 0.00735, 0.00736, 0.00738\r\n4800, 0.00052, 0.00074, 0.00095, 0.00121, 0.00167, 0.00218, 0.00272, 0.00336, 0.00404, 0.00459, 0.00538, 0.0064, 0.00701, 0.00725, 0.0075, 0.00774, 0.00793, 0.00799, 0.00805, 0.00811, 0.00817, 0.00822, 0.00828, 0.00829, 0.0083, 0.00831\r\n5200, 0.00059, 0.00078, 0.00098, 0.00117, 0.00164, 0.00216, 0.00272, 0.0034, 0.0041, 0.00505, 0.00633, 0.0069, 0.00747, 0.00779, 0.00807, 0.00835, 0.00863, 0.0088, 0.00886, 0.00891, 0.00897, 0.00903, 0.00909, 0.00914, 0.0092, 0.00926\r\n5600, 0.00065, 0.00083, 0.001, 0.00119, 0.0016, 0.00212, 0.00273, 0.00356, 0.00462, 0.00551, 0.00638, 0.00704, 0.00762, 0.00803, 0.0083, 0.00857, 0.00885, 0.00912, 0.00925, 0.00931, 0.00937, 0.00943, 0.00949, 0.00955, 0.00961, 0.00967\r\n5800, 0.00076, 0.0009, 0.00103, 0.00119, 0.00162, 0.00211, 0.00271, 0.00357, 0.0046, 0.00548, 0.00642, 0.00712, 0.00772, 0.00816, 0.00841, 0.00867, 0.00892, 0.00918, 0.0093, 0.00935, 0.0094, 0.00945, 0.00951, 0.00956, 0.00961, 0.00966\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Fuel Consumption Rate; 150 kW Fuel Consumption\r\n#Library : Powertrain: Fuel Consumption Rate\r\n#DataSet : 150 kW Fuel Consumption\r\n#Category:\r\n#FileID  : FuelRate102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:52\r\n#VehCode Fuel rate\r\n\r\nEXIT_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par\r\n\r\n#BlueLink0 Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption` ` , Fuel rate\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 24.75, 76.11, 101.37, 103.43, 104.6, 105.18, 105.38, 105.43, 105.46, 105.43\r\n633, 29.7, 92.87, 139.66, 149.15, 150.67, 151.28, 151.5, 151.52, 151.52, 151.52\r\n750, 0, 87.39, 148.02, 161.35, 164.95, 166.25, 166.73, 166.77, 166.77, 166.75\r\n1107, -9.9, 70.62, 173.59, 198.66, 208.61, 212.02, 213.29, 213.4, 213.37, 213.29\r\n1463, -14.85, 47.12, 167.31, 207.9, 221.15, 227.15, 230.09, 230.77, 231.22, 235.62\r\n1820, -16.83, 25.74, 148.5, 211.6, 233.68, 242.29, 246.89, 248.14, 249.06, 255.42\r\n2177, -20.17, 9.9, 117.65, 203.67, 237.6, 257.4, 260.37, 263.34, 266.31, 272.88\r\n2533, -25.32, -6.41, 81.3, 182.08, 239.58, 267, 274.23, 279.24, 282.15, 287.1\r\n2890, -30.14, -15.16, 56.41, 153.5, 233.12, 269.9, 285.22, 289.08, 295.02, 299.97\r\n3247, -34.39, -22.06, 37.66, 122.49, 223.45, 267.3, 287.1, 295.02, 300.96, 306.9\r\n3603, -38.57, -28.1, 23.48, 96.53, 201.04, 259.38, 288.09, 297, 303.93, 309.87\r\n3960, -42.77, -33.71, 11.8, 76.42, 174.35, 248.62, 285.12, 296.01, 302.94, 306.9\r\n4317, -47.21, -39.38, 0.28, 57.45, 150.24, 237.3, 280.17, 290.07, 297, 302.88\r\n4673, -51.83, -45.01, -9.97, 41.19, 125.06, 220.31, 272.25, 282.15, 292.05, 297\r\n5030, -56.74, -50.57, -19.08, 26.99, 102.65, 198.96, 262.35, 272.25, 282.15, 287.1\r\n5387, -61.67, -56.24, -27.53, 14.45, 83.52, 176.58, 246.84, 256.41, 269.64, 272.49\r\n5743, -67.19, -62.17, -35.72, 2.82, 66.2, 153.28, 221.41, 236.52, 243.61, 246.41\r\n6100, -73.21, -68.41, -43.88, -8.16, 50.38, 130.66, 193.86, 207.92, 214.52, 217.05\r\n6500, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19\r\n6700, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 150 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 150 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine110.par\r\n\r\n#BlueLink0 Powertrain: Engine`150 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC103.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 150 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.00704273\r\n0.1, 0.00704273\r\n0.2, 0.00704273\r\n0.3, 0.00704269\r\n0.4, 0.00704199\r\n0.5, 0.00703585\r\n0.6, 0.00700014\r\n0.7, 0.00684379\r\n0.8, 0.00628652\r\n0.9, 0.00458708\r\n0.95, 0.00282599\r\n0.99, 0.000673411\r\n1.01, -0.000673411\r\n1.05, -0.00282599\r\n1.1, -0.00458708\r\n1.2, -0.00628652\r\n1.3, -0.00684379\r\n1.4, -0.00700014\r\n1.5, -0.00703585\r\n1.6, -0.00704199\r\n1.7, -0.00704269\r\n1.8, -0.00704273\r\n1.9, -0.00704273\r\n2, -0.00704273\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 150 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 150 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC103.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 150 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission`\r\n#RingCtrl0 6\r\nNGEARS 6\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.168\r\nR_GEAR_TR(1) 3.538\r\nR_GEAR_TR(2) 2.06\r\nR_GEAR_TR(3) 1.404\r\nR_GEAR_TR(4) 1.00\r\nR_GEAR_TR(5) 0.713\r\nR_GEAR_TR(6) 0.582\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nT_SHIFT 0.25\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift101.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 1-2 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 874\r\n0.2, 874\r\n0.8, 1653\r\n1, 1653\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 699\r\n0.4, 699\r\n0.8, 1240\r\n1, 1240\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 1-2 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift101.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`6-speed, 1-2 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift102.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 2-3 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1282\r\n0.2, 1282\r\n0.8, 2840\r\n1, 2840\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1026\r\n0.4, 1026\r\n0.8, 2130\r\n1, 2130\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 2-3 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift102.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`6-speed, 2-3 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift103.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 3-4 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 4167\r\n1, 4167\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 3125\r\n1, 3125\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 3-4 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift103.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`6-speed, 3-4 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift104.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 4-5 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2525\r\n0.2, 2525\r\n0.8, 5850\r\n1, 5850\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2020\r\n0.4, 2020\r\n0.8, 4388\r\n1, 4388\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 4-5 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift104.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`6-speed, 4-5 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift105.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 5-6 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 3093\r\n0.2, 3093\r\n0.8, 8205\r\n1, 8205\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2474\r\n0.4, 2474\r\n0.8, 6154\r\n1, 6154\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 5-6 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift105.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`6-speed, 5-6 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 6-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 6-Speed Transmission\r\n#Category:\r\n#FileID  : Trans101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans101.par\r\n\r\n#BlueLink8 Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Open - Gear Ratio 4.1`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_CONSTANT 0\r\nR_GEAR_FD 4.1\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 0.8\r\nLOCKED_FD_K 80\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par\r\n\r\n#BlueLink3 Powertrain: Front Differential`Open - Gear Ratio 4.1` CS Front Differentials` , Differential\r\n\r\n\r\nIDIFF 1\r\n#BlueLink4 Powertrain: Front Differential`Open - Gear Ratio 4.1` CS Front Differentials` , Differential\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front-Wheel Drive; 150 kW, 6-spd., 4.1 Ratio\r\n#Library : Powertrain: Front-Wheel Drive\r\n#DataSet : 150 kW, 6-spd., 4.1 Ratio\r\n#Category:\r\n#FileID  : FWD102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode FWD\r\n\r\nENTRY_NOTEFILE Powertrain\\Fwd\\FWD102_note.txt\r\nGeneric 150 kW powertrain with an automatic transmission. The torque converter data has been tuned to work with the 150 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\Fwd\\FWD102_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\Fwd\\FWD102.par\r\n\r\n#BlueLink3 Powertrain: Front-Wheel Drive`150 kW, 6-spd., 4.1 Ratio` ` , Front-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W103.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`D-Class, Sedan w/ ABS`CS D-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.12\r\nON_F_SGUI 0.09\r\nON_R_SGUI 0.09\r\nV_F_SGUI 2\r\nV_R_SGUI 2\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq105.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`250 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 250\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 250\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 250 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 250 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq105.par\r\n\r\n#BlueLink0 Brakes: Torque`250 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.09\r\nABS_VMIN 2\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`250 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq108.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`100 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 100\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 100\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 100 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 100 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq108.par\r\n\r\n#BlueLink2 Brakes: Torque`100 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.12\r\nABS_SLIP_ON 0.09\r\nABS_VMIN 2\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`100 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS D-Class } D-Class, Sedan w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : D-Class, Sedan w/ ABS\r\n#Category: CS D-Class\r\n#FileID  : Brk4W103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W103.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`D-Class, Sedan w/ ABS` CS D-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2103.par`08-02-2011`16:42:43\r\n#FullDataName Steering`D-Class, Sedan: Power, R&P w/ Parking Tq.`CS D-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.00011\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 77.0\r\n*L2_LKPO 0\r\n*R1_LKPO 77.0\r\n*R2_LKPO 0\r\n*L1_AKPI 12.5\r\n*L2_AKPI 0\r\n*R1_AKPI 12.5\r\n*R2_AKPI 0\r\n*L1_ACAST 9.5\r\n*L2_ACAST 0\r\n*R1_ACAST 9.5\r\n*R2_ACAST 0\r\n*L1_XKPO 5.0\r\n*L2_XKPO 0\r\n*R1_XKPO 5.0\r\n*R2_XKPO 0\r\n*CF_F 40\r\n*D_RACK_F 4\r\n*K_TBAR 4\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.00011\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niside 2\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 40/360\r\nD_RACK 4\r\nTBAR 4\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx118.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`D-Class, Sedan Wheel Kinematics`CS D-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-64, -41.81\r\n-61.44, -39.68\r\n-58.88, -37.61\r\n-56.32, -35.58\r\n-53.76, -33.6\r\n-51.2, -31.66\r\n-48.64, -29.77\r\n-46.08, -27.92\r\n-43.52, -26.1\r\n-40.96, -24.33\r\n-38.4, -22.59\r\n-35.84, -20.88\r\n-33.28, -19.21\r\n-30.72, -17.57\r\n-28.16, -15.97\r\n-25.6, -14.39\r\n-23.04, -12.84\r\n-20.48, -11.32\r\n-17.92, -9.83\r\n-15.36, -8.36\r\n-12.8, -6.91\r\n-10.24, -5.49\r\n-7.68, -4.09\r\n-5.12, -2.7\r\n-2.56, -1.34\r\n0, 0\r\n2.56, 1.33\r\n5.12, 2.64\r\n7.68, 3.93\r\n10.24, 5.21\r\n12.8, 6.48\r\n15.36, 7.73\r\n17.92, 8.97\r\n20.48, 10.21\r\n23.04, 11.43\r\n25.6, 12.65\r\n28.16, 13.86\r\n30.72, 15.07\r\n33.28, 16.27\r\n35.84, 17.46\r\n38.4, 18.66\r\n40.96, 19.85\r\n43.52, 21.05\r\n46.08, 22.24\r\n48.64, 23.45\r\n51.2, 24.65\r\n53.76, 25.86\r\n56.32, 27.09\r\n58.88, 28.32\r\n61.44, 29.57\r\n64, 30.83\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-64, -30.83\r\n-61.44, -29.57\r\n-58.88, -28.32\r\n-56.32, -27.09\r\n-53.76, -25.86\r\n-51.2, -24.65\r\n-48.64, -23.45\r\n-46.08, -22.24\r\n-43.52, -21.05\r\n-40.96, -19.85\r\n-38.4, -18.66\r\n-35.84, -17.46\r\n-33.28, -16.27\r\n-30.72, -15.07\r\n-28.16, -13.86\r\n-25.6, -12.65\r\n-23.04, -11.43\r\n-20.48, -10.21\r\n-17.92, -8.97\r\n-15.36, -7.73\r\n-12.8, -6.48\r\n-10.24, -5.21\r\n-7.68, -3.93\r\n-5.12, -2.64\r\n-2.56, -1.33\r\n0, 0\r\n2.56, 1.34\r\n5.12, 2.7\r\n7.68, 4.09\r\n10.24, 5.49\r\n12.8, 6.91\r\n15.36, 8.36\r\n17.92, 9.83\r\n20.48, 11.32\r\n23.04, 12.84\r\n25.6, 14.39\r\n28.16, 15.97\r\n30.72, 17.57\r\n33.28, 19.21\r\n35.84, 20.88\r\n38.4, 22.59\r\n40.96, 24.33\r\n43.52, 26.1\r\n46.08, 27.92\r\n48.64, 29.77\r\n51.2, 31.66\r\n53.76, 33.6\r\n56.32, 35.58\r\n58.88, 37.61\r\n61.44, 39.68\r\n64, 41.81\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS D-Class } D-Class, Sedan Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : D-Class, Sedan Wheel Kinematics\r\n#Category: CS D-Class\r\n#FileID  : RkKinAx118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nENTRY_NOTEFILE Steering\\KinematicsRack2\\RkKinAx118_note.txt\r\nEXIT_NOTEFILE Steering\\KinematicsRack2\\RkKinAx118_note.txt\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx118.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`D-Class, Sedan Wheel Kinematics` CS D-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost102.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 1\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 2500\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -2500, -2500, -2500, -2500, -2500, -2500\r\n-15, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12, -2500, -2500, -2500, -2500, -2500, -2500\r\n-11.5, -2500, -2500, -2500, -2500, -2266.8, -2141.32\r\n-11, -2500, -2420, -2427.94, -2280.85, -1736.13, -1500.51\r\n-10.5, -2500, -2205, -2063.12, -1815.93, -1313.29, -1034.22\r\n-10, -2500, -2000, -1739.25, -1429.79, -980, -700\r\n-9.5, -2500, -1805, -1453.43, -1112.03, -720.39, -464.39\r\n-9, -2500, -1620, -1202.85, -853.22, -520.81, -301.33\r\n-8.5, -2500, -1445, -984.76, -644.8, -369.61, -190.74\r\n-8, -2500, -1280, -796.49, -479.09, -256.9, -117.44\r\n-7.5, -2500, -1125, -635.44, -349.2, -174.42, -70.08\r\n-7, -2500, -980, -499.12, -249.03, -115.3, -40.35\r\n-6.5, -2500, -845, -385.09, -173.2, -73.91, -22.31\r\n-6, -2500, -720, -291, -117.01, -45.72, -11.76\r\n-5.5, -2500, -605, -214.6, -76.39, -27.13, -5.86\r\n-5, -2500, -500, -153.73, -47.89, -15.31, -2.73\r\n-4.5, -2278.13, -405, -106.32, -28.58, -8.14, -1.18\r\n-4, -1600, -320, -70.4, -16.05, -4.01, -0.46\r\n-3.5, -1071.88, -245, -44.12, -8.34, -1.8, -0.16\r\n-3, -675, -180, -25.72, -3.92, -0.71, -0.05\r\n-2.5, -390.63, -125, -13.59, -1.6, -0.24, -0.01\r\n-2, -200, -80, -6.22, -0.54, -0.06, 0\r\n-1.5, -84.38, -45, -2.27, -0.13, -0.01, 0\r\n-1, -25, -20, -0.55, -0.02, 0, 0\r\n-0.5, -3.13, -5, -0.05, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 3.13, 5, 0.05, 0, 0, 0\r\n1, 25, 20, 0.55, 0.02, 0, 0\r\n1.5, 84.38, 45, 2.27, 0.13, 0.01, 0\r\n2, 200, 80, 6.22, 0.54, 0.06, 0\r\n2.5, 390.63, 125, 13.59, 1.6, 0.24, 0.01\r\n3, 675, 180, 25.72, 3.92, 0.71, 0.05\r\n3.5, 1071.88, 245, 44.12, 8.34, 1.8, 0.16\r\n4, 1600, 320, 70.4, 16.05, 4.01, 0.46\r\n4.5, 2278.13, 405, 106.32, 28.58, 8.14, 1.18\r\n5, 2500, 500, 153.73, 47.89, 15.31, 2.73\r\n5.5, 2500, 605, 214.6, 76.39, 27.13, 5.86\r\n6, 2500, 720, 291, 117.01, 45.72, 11.76\r\n6.5, 2500, 845, 385.09, 173.2, 73.91, 22.31\r\n7, 2500, 980, 499.12, 249.03, 115.3, 40.35\r\n7.5, 2500, 1125, 635.44, 349.2, 174.42, 70.08\r\n8, 2500, 1280, 796.49, 479.09, 256.9, 117.44\r\n8.5, 2500, 1445, 984.76, 644.8, 369.61, 190.74\r\n9, 2500, 1620, 1202.85, 853.22, 520.81, 301.33\r\n9.5, 2500, 1805, 1453.43, 1112.03, 720.39, 464.39\r\n10, 2500, 2000, 1739.25, 1429.79, 980, 700\r\n10.5, 2500, 2205, 2063.12, 1815.93, 1313.29, 1034.22\r\n11, 2500, 2420, 2427.94, 2280.85, 1736.13, 1500.51\r\n11.5, 2500, 2500, 2500, 2500, 2266.8, 2141.32\r\n12, 2500, 2500, 2500, 2500, 2500, 2500\r\n12.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n13, 2500, 2500, 2500, 2500, 2500, 2500\r\n13.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n14, 2500, 2500, 2500, 2500, 2500, 2500\r\n14.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n15, 2500, 2500, 2500, 2500, 2500, 2500\r\n16, 2500, 2500, 2500, 2500, 2500, 2500\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive High Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive High Boost Curve\r\n#Category:\r\n#FileID  : FBoost102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost102.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp102.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`0.001 deg/N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.001\r\n\r\nSTEER_COMP_COEFFICIENT 0.001\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; 0.001 deg/N-m\r\n#Library : Steering System: Compliance\r\n#DataSet : 0.001 deg/N-m\r\n#Category:\r\n#FileID  : StrCmp102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp102.par\r\n\r\n#BlueLink13 Steering System: Compliance`0.001 deg/N-m` ` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx102.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Example Parking Torque for 2 Wheels`\r\n#RingCtrl0 CARPET\r\n#RingCtrl1 CARPET\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 5\r\n*A_MZ_BETA_L 5\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 5\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Vehicle speed (km/h)\r\n*3D_ZLabel Parking torque at R kingpin (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 2, 3 ! columns x rows\r\nMZ_PARKING_STEER_CARPET\r\n0, 1000, 5000\r\n0, 300, 400\r\n10, 0, 0\r\n12, 0, 0\r\nENDTABLE\r\n\r\n\r\niside 1\r\nA_MZ_BETA 5\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Vehicle speed (km/h)\r\n*3D_ZLabel Parking torque at L kingpin (N-m)\r\n\r\n#DiagramTwo1\r\n*3D_DATA 2, 3 ! columns x rows\r\nMZ_PARKING_STEER_CARPET\r\n0, 1000, 5000\r\n0, 300, 400\r\n10, 0, 0\r\n12, 0, 0\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Example Parking Torque for 2 Wheels\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Example Parking Torque for 2 Wheels\r\n#Category:\r\n#FileID  : TqPkAx102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx102.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Example Parking Torque for 2 Wheels` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS D-Class } D-Class, Sedan: Power, R&P w/ Parking Tq.\r\n#Library : Steering\r\n#DataSet : D-Class, Sedan: Power, R&P w/ Parking Tq.\r\n#Category: CS D-Class\r\n#FileID  : StrSys2103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2103_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 2780 mm\r\nFront Track =  1550 mm\r\n\r\nThis dataset uses an example of parking torque, which is speed and load sensitive.\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2103_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2103.par\r\n\r\n#BlueLink7 Steering`D-Class, Sedan: Power, R&P w/ Parking Tq.` CS D-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, Sedan` D-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS D-Class } D-Class, Sedan LEO\r\n#Library : Vehicle: Assembly\r\n#DataSet : D-Class, Sedan LEO\r\n#Category: CS D-Class\r\n#FileID  : Vehicle166\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 15:41:14\r\n#VehCode Ind_Ind\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle166.par\r\n\r\n#BlueLink2 Vehicle: Assembly`D-Class, Sedan LEO` CS D-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc168.par`08-28-2019`16:44:53\r\n#FullDataName Procedures`chapt2_KinematicModel_Validate Procedure`BOOK_MPC_Procedures\r\n#CheckBox0 1\r\nOPT_INIT_CONFIG 1\r\n#CheckBox1 1\r\nOPT_INIT_ROAD 1\r\n#CheckBox2 1\r\nOPT_INIT_SPEED 1\r\n#CheckBox3 1\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 95\r\nTSTOP 50\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 2\r\nENTER_PARSFILE Control\\Steer\\Steer115.par`08-28-2019`17:06:58\r\n#FullDataName Control: Steering (Open Loop)`Leo self-defined SteeringProfile 1`BOOK_MPC_SteeringProfile\r\nOPT_DRIVER_MODEL 0\r\nOPT_STEER 0\r\n#RingCtrl0 LINEAR\r\n\r\n#DiagramOne0\r\nSTEER_SW_TABLE LINEAR\r\n0, 0\r\n1.24, 12.958\r\n1.55, 16.492\r\n1.86, 20.14\r\n2.17, 23.56\r\n2.47, 27.17\r\n2.78, 30.59\r\n3.09, 33.82\r\n3.4, 37.05\r\n3.71, 40.28\r\n4.02, 43.32\r\n4.33, 46.17\r\n4.64, 48.83\r\n4.95, 51.49\r\n5.26, 53.96\r\n5.57, 56.05\r\n5.88, 58.14\r\n6.19, 60.04\r\n6.5, 61.75\r\n6.81, 63.08\r\n7.12, 64.22\r\n7.42, 65.17\r\n7.73, 65.74\r\n8.04, 66.31\r\n8.35, 66.31\r\n8.66, 66.31\r\n8.97, 65.93\r\n9.28, 65.36\r\n9.59, 64.41\r\n9.9, 63.27\r\n10.2, 61.94\r\n10.5, 60.23\r\n10.8, 58.33\r\n11.1, 56.05\r\n11.4, 53.58\r\n11.8, 50.92\r\n12.1, 48.07\r\n12.4, 44.84\r\n12.7, 41.42\r\n13, 38\r\n13.3, 34.39\r\n13.6, 30.21\r\n13.9, 26.03\r\n14.2, 21.85\r\n14.5, 17.404\r\n14.8, 12.844\r\n15.2, 8.246\r\n15.5, 3.534\r\n15.8, -1.3186\r\n16.1, -6.137\r\n16.4, -10.982\r\n16.7, -15.827\r\n17, -20.71\r\n17.3, -25.65\r\n17.6, -30.4\r\n17.9, -35.34\r\n18.3, -40.09\r\n18.6, -44.65\r\n18.9, -49.4\r\n19.2, -53.77\r\n19.5, -57.95\r\n19.8, -61.94\r\n20.1, -65.93\r\n20.4, -69.54\r\n20.7, -73.15\r\n21, -76.38\r\n21.3, -79.23\r\n21.7, -82.08\r\n22, -84.36\r\n22.3, -86.45\r\n22.6, -88.35\r\n22.9, -89.68\r\n23.2, -90.82\r\n23.5, -91.58\r\n23.8, -92.15\r\n24.1, -92.34\r\n24.4, -91.96\r\n24.7, -91.39\r\n25.1, -90.44\r\n25.4, -89.11\r\n25.7, -87.4\r\n26, -85.31\r\n26.3, -82.84\r\n26.6, -80.18\r\n26.9, -76.95\r\n27.2, -73.53\r\n27.5, -69.73\r\n27.8, -65.55\r\n28.2, -61.18\r\n28.5, -56.43\r\n28.8, -51.49\r\n29.1, -46.17\r\n29.4, -40.85\r\n29.7, -35.15\r\n30, -29.07\r\n30.3, -22.99\r\n30.6, -16.758\r\n30.9, -10.488\r\n31.2, -4.066\r\n31.6, 2.584\r\n31.9, 9.386\r\n32.2, 15.922\r\n32.5, 22.8\r\n32.8, 29.45\r\n33.1, 36.29\r\n33.4, 42.75\r\n33.7, 49.59\r\n34, 55.86\r\n34.3, 62.13\r\n34.6, 68.4\r\n35, 74.29\r\n35.3, 79.99\r\n35.6, 85.5\r\n35.9, 90.63\r\n36.2, 95.57\r\n36.5, 100.13\r\n36.8, 104.5\r\n37.1, 108.3\r\n37.4, 111.91\r\n37.7, 115.14\r\n38.1, 117.8\r\n38.4, 120.08\r\n38.7, 121.98\r\n39, 123.31\r\n39.3, 124.26\r\n39.6, 124.64\r\n39.9, 124.64\r\n40.2, 124.07\r\n40.5, 123.12\r\n40.8, 121.41\r\n41.1, 119.32\r\n41.5, 116.85\r\n41.8, 113.81\r\n42.1, 110.39\r\n42.4, 106.4\r\n42.7, 102.03\r\n43, 97.09\r\n43.3, 91.58\r\n43.6, 85.88\r\n43.9, 79.61\r\n44.2, 73.15\r\n44.5, 66.12\r\n44.9, 58.71\r\n45.2, 51.11\r\n45.5, 43.13\r\n45.8, 34.96\r\n46.1, 26.41\r\n46.4, 17.708\r\n46.7, 8.968\r\n47, -0.076\r\n47.3, -8.949\r\n47.6, -18.107\r\n48, -27.36\r\n48.3, -36.48\r\n48.6, -45.98\r\n48.9, -55.1\r\n49.2, -64.22\r\n49.5, -73.15\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering (Open Loop); { BOOK_MPC_SteeringProfile } Leo self-defined SteeringProfile 1\r\n#Library : Control: Steering (Open Loop)\r\n#DataSet : Leo self-defined SteeringProfile 1\r\n#Category: BOOK_MPC_SteeringProfile\r\n#FileID  : Steer115\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 17:06:58\r\n#VehCode Open-loop steer control\r\n\r\nEXIT_PARSFILE Control\\Steer\\Steer115.par\r\n\r\n#BlueLink27 Control: Steering (Open Loop)`Leo self-defined SteeringProfile 1` BOOK_MPC_SteeringProfile` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\nENTER_PARSFILE Control\\Speed_t\\SpdTime108.par`08-28-2019`21:10:42\r\n#FullDataName Control: Speed (Closed Loop) vs. Time`Leo self-defined speed profile 1`BOOK_MPC_SpeedProfile\r\nOPT_SC 2\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\nSPEED_KI 0.157\r\nSPEED_KP 0.141\r\nOPT_VMIN -1\r\n\r\n#CheckBox0 0\r\nOPT_BK_SC 0\r\n#CheckBox1 0\r\nOPT_SC_ENGINE_BRAKING 0\r\n\r\n#DiagramOne0\r\nSPEED_TIME_TABLE LINEAR\r\n0, 10.8\r\n1.14, 11.808\r\n1.45, 12.06\r\n1.77, 12.312\r\n2.08, 12.564\r\n2.39, 12.816\r\n2.7, 13.032\r\n3.01, 13.284\r\n3.32, 13.5\r\n3.63, 13.716\r\n3.94, 13.932\r\n4.25, 14.112\r\n4.57, 14.328\r\n4.88, 14.508\r\n5.19, 14.688\r\n5.5, 14.832\r\n5.81, 14.976\r\n6.12, 15.12\r\n6.43, 15.228\r\n6.74, 15.336\r\n7.05, 15.408\r\n7.36, 15.516\r\n7.67, 15.552\r\n7.98, 15.624\r\n8.29, 15.66\r\n8.6, 15.66\r\n8.91, 15.66\r\n9.22, 15.66\r\n9.53, 15.624\r\n9.84, 15.588\r\n10.2, 15.552\r\n10.5, 15.48\r\n10.8, 15.408\r\n11.1, 15.3\r\n11.4, 15.192\r\n11.7, 15.048\r\n12, 14.904\r\n12.3, 14.796\r\n12.6, 14.616\r\n12.9, 14.436\r\n13.2, 14.292\r\n13.6, 14.076\r\n13.9, 13.896\r\n14.2, 13.716\r\n14.5, 13.5\r\n14.8, 13.284\r\n15.1, 13.068\r\n15.4, 12.852\r\n15.7, 12.636\r\n16, 12.384\r\n16.3, 12.168\r\n16.6, 11.952\r\n17, 11.736\r\n17.3, 11.52\r\n17.6, 11.304\r\n17.9, 11.088\r\n18.2, 10.872\r\n18.5, 10.692\r\n18.8, 10.512\r\n19.1, 10.332\r\n19.4, 10.152\r\n19.7, 9.972\r\n20, 9.828\r\n20.4, 9.72\r\n20.7, 9.576\r\n21, 9.468\r\n21.3, 9.36\r\n21.6, 9.288\r\n21.9, 9.216\r\n22.2, 9.18\r\n22.5, 9.144\r\n22.8, 9.108\r\n23.1, 9.108\r\n23.5, 9.108\r\n23.8, 9.144\r\n24.1, 9.216\r\n24.4, 9.288\r\n24.7, 9.36\r\n25, 9.468\r\n25.3, 9.576\r\n25.6, 9.72\r\n25.9, 9.864\r\n26.3, 10.044\r\n26.6, 10.26\r\n26.9, 10.44\r\n27.2, 10.656\r\n27.5, 10.908\r\n27.8, 11.16\r\n28.1, 11.412\r\n28.4, 11.7\r\n28.7, 11.988\r\n29.1, 12.276\r\n29.4, 12.6\r\n29.7, 12.924\r\n30, 13.248\r\n30.3, 13.572\r\n30.6, 13.932\r\n30.9, 14.256\r\n31.2, 14.616\r\n31.5, 14.94\r\n31.9, 15.3\r\n32.2, 15.66\r\n32.5, 16.02\r\n32.8, 16.344\r\n33.1, 16.704\r\n33.4, 17.028\r\n33.7, 17.388\r\n34, 17.712\r\n34.3, 18.036\r\n34.7, 18.324\r\n35, 18.648\r\n35.3, 18.936\r\n35.6, 19.224\r\n35.9, 19.476\r\n36.2, 19.728\r\n36.5, 19.944\r\n36.8, 20.196\r\n37.1, 20.376\r\n37.5, 20.556\r\n37.8, 20.736\r\n38.1, 20.88\r\n38.4, 21.024\r\n38.7, 21.132\r\n39, 21.24\r\n39.3, 21.276\r\n39.6, 21.348\r\n39.9, 21.384\r\n40.3, 21.384\r\n40.6, 21.384\r\n40.9, 21.348\r\n41.2, 21.312\r\n41.5, 21.24\r\n41.8, 21.132\r\n42.1, 21.024\r\n42.4, 20.88\r\n42.7, 20.736\r\n43, 20.592\r\n43.4, 20.412\r\n43.7, 20.196\r\n44, 20.016\r\n44.3, 19.764\r\n44.6, 19.548\r\n44.9, 19.296\r\n45.2, 19.008\r\n45.5, 18.756\r\n45.8, 18.468\r\n46.1, 18.18\r\n46.4, 17.892\r\n46.8, 17.604\r\n47.1, 17.28\r\n47.4, 16.992\r\n47.7, 16.668\r\n48, 16.38\r\n48.3, 16.056\r\n48.6, 15.768\r\n48.9, 15.48\r\n49.2, 15.192\r\n49.5, 14.904\r\n49.8, 14.652\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Control: Speed (Closed Loop) vs. Time; { BOOK_MPC_SpeedProfile } Leo self-defined speed profile 1\r\n#Library : Control: Speed (Closed Loop) vs. Time\r\n#DataSet : Leo self-defined speed profile 1\r\n#Category: BOOK_MPC_SpeedProfile\r\n#FileID  : SpdTime108\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 21:10:42\r\n#VehCode Speed vs. time\r\n\r\nEXIT_PARSFILE Control\\Speed_t\\SpdTime108.par\r\n\r\n#BlueLink31 Control: Speed (Closed Loop) vs. Time`Leo self-defined speed profile 1` BOOK_MPC_SpeedProfile` , Speed vs. time\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road109.par`08-02-2011`16:43:16\r\n#FullDataName Road: 3D Surface (All Properties)`1 km Square (Mu = 1.0)`3D Grid\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.02\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY101.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Straight`\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n100, 0, 100\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; Straight\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Straight\r\n#Category:\r\n#FileID  : RoadXY101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY101.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Straight` ` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric103.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`1.0`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 1\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 1.0\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 1.0\r\n#Category: Constant Mu\r\n#FileID  : RdFric103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric103.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`1.0` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp109.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Surface Shapes`1 km Square Checkerboard`3D Grid\r\nNLANES 4\r\n#MiscYellow0\r\n# 0.9 0.9 0.9, Pavement, 0.15, 10, 100, -500, m, 500, m, 99, 2, -500, 500, 10, 2, 0,\r\n# 0.9 0.9 0.9, Pavement, 0.15, 10, 99, -500, m, 490, m, 98, 2, -490, 500, 10, 2, 0,\r\n# 0.9 0.9 0.9, Slate (White), 0.10, 10, 99, -490, m, 500, m, 98, 2, -490, 500, 10, 2, 0,\r\n# 0.9 0.9 0.9, Slate (White), 0.10, 10, 99, -500, m, 490, m, 98, 2, -500, 500, 10, 2, 0,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.9 0.9 0.9\r\nMATERIAL(1) Pavement\r\nSPECULAR(1) 0.15\r\nSCALE(1) 10\r\nLTILES(1) 100\r\nLIN(1) -500\r\nLINUNITS(1) m\r\nLOUT(1) 500\r\nLOUTUNITS(1) m\r\nLDIV(1) 99\r\nLIPRINT(1) 2\r\nSSTART(1) -500\r\nSSTOP(1) 500\r\nSINT(1) 10\r\nIPRINT(1) 2\r\nDZ(1) 0\r\nCOLOR(2) 0.9 0.9 0.9\r\nMATERIAL(2) Pavement\r\nSPECULAR(2) 0.15\r\nSCALE(2) 10\r\nLTILES(2) 99\r\nLIN(2) -500\r\nLINUNITS(2) m\r\nLOUT(2) 490\r\nLOUTUNITS(2) m\r\nLDIV(2) 98\r\nLIPRINT(2) 2\r\nSSTART(2) -490\r\nSSTOP(2) 500\r\nSINT(2) 10\r\nIPRINT(2) 2\r\nDZ(2) 0\r\nCOLOR(3) 0.9 0.9 0.9\r\nMATERIAL(3) Slate (White)\r\nSPECULAR(3) 0.10\r\nSCALE(3) 10\r\nLTILES(3) 99\r\nLIN(3) -490\r\nLINUNITS(3) m\r\nLOUT(3) 500\r\nLOUTUNITS(3) m\r\nLDIV(3) 98\r\nLIPRINT(3) 2\r\nSSTART(3) -490\r\nSSTOP(3) 500\r\nSINT(3) 10\r\nIPRINT(3) 2\r\nDZ(3) 0\r\nCOLOR(4) 0.9 0.9 0.9\r\nMATERIAL(4) Slate (White)\r\nSPECULAR(4) 0.10\r\nSCALE(4) 10\r\nLTILES(4) 99\r\nLIN(4) -500\r\nLINUNITS(4) m\r\nLOUT(4) 490\r\nLOUTUNITS(4) m\r\nLDIV(4) 98\r\nLIPRINT(4) 2\r\nSSTART(4) -500\r\nSSTOP(4) 500\r\nSINT(4) 10\r\nIPRINT(4) 2\r\nDZ(4) 0\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { 3D Grid } 1 km Square Checkerboard\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : 1 km Square Checkerboard\r\n#Category: 3D Grid\r\n#FileID  : RdShp109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp109.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`1 km Square Checkerboard` 3D Grid` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink6 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road109.ani`02-12-2009`07:50:48\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road109_1.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.15 0.15 0.15\r\n\r\nadd_obj Roads\\3D_Road\\Road109_2.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.15 0.15 0.15\r\n\r\nadd_obj Roads\\3D_Road\\Road109_3.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road109_4.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road109.ani\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { 3D Grid } 1 km Square (Mu = 1.0)\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : 1 km Square (Mu = 1.0)\r\n#Category: 3D Grid\r\n#FileID  : Road109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:16\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road109.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1 km Square (Mu = 1.0)` 3D Grid` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt2_KinematicModel_Validate Procedure\r\n#Library : Procedures\r\n#DataSet : chapt2_KinematicModel_Validate Procedure\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc168\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 16:44:53\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc168.par\r\n\r\n#BlueLink28 Procedures`chapt2_KinematicModel_Validate Procedure` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, Sedan` D-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter2_KinematicModel_Validation <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter2_KinematicModel_Validation\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter2_KinematicModel_Validation\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter2_KinematicModel_Validation\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run278\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-28-2019 16:03:36\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run278.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/KinematicModel_Validation.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"KinematicModel_Validation\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.103\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"ModelValidation_Pacejka\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [734.0, 356.0, 992.0, 519.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[942.0, 342.0]\r\n\tZoomFactor\t\t[1.2258064516129032]\r\n\tOffset\t\t\t[158.91694480102666, 140.0]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Wed Aug 28 17:26:52 2019\"\r\n  RTWModifiedTimeStamp\t  488913141\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:103>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"KinematicModel_Validation\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"KinematicModel_Validation\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"50\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"KinematicModel_Validation\"\r\n    Location\t\t    [734, 356, 1726, 875]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"123\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"96\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [0, 1]\r\n      Position\t\t      [240, 154, 340, 216]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"LEO_KinematicModel_Validation.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [375, 152, 630, 218]\r\n      ZOrder\t\t      12\r\n      FunctionName\t      \"Main_KinematicModel_Validation\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"95\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [665, 170, 725, 200]\r\n      ZOrder\t\t      11\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      17\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"To Workspace1\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      18\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/Main_KinematicModel_Validation.m",
    "content": "function [sys,x0,str,ts] =Main_KinematicModel_Validation(t,x,u,flag)\r\n%***************************************************************%\r\n% 2.1ĳ˶ģ͵ķ֤\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n% end %  end sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%***************************************************************%\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n%***************************************************************% \r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 5;  %ģɢ״̬ĸ,ʵϱapp ûõֵֻʾɢģ\r\nsizes.NumOutputs     = 10;  %S\r\nsizes.NumInputs      = 10; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n  \r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % Ignore the first few inputs from CarSim\r\nglobal Previous_States; % store the previous state vector \r\n    Previous_States.X_pred = 0.0; \r\n    Previous_States.Y_pred = 0.0; \r\n    Previous_States.Yaw_pred = 0.0;\r\n\r\n% RLS initialization\r\n[y, c] = func_SteerRatio_Estimation_RLS('initial', 0.95, 1, 10);\r\n[y, e] = func_SteerRatio_Estimation_RLS_array('initial', 0.95, 10, 10);\r\n%  End of mdlInitializeSizes\r\n\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  Ŀǰûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;\r\n% end     %End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n%tǲʱ, x״̬, u(simulinkģ)\r\nglobal InitialGapflag; \r\nglobal Previous_States;\r\nlfr = 2.78;\r\nTs = 0.05;\r\nSteer_ratio = 1;\r\n\r\n    % ȡCarSim뵽Simulink\r\n    x_L2 = u(1); %x\r\n    x_R2 = u(2); %Һx\r\n    y_L2 = u(3); %y\r\n    y_R2 = u(4); %Һy   \r\n    Yaw  = u(5)*pi/180;%Unitdeg-->rad\r\n    Steer_SW = u(6); %̽Ƕ\r\n    Steer_L1 = u(7); %ǰƫ\r\n    Steer_R1 = u(8); %ǰƫ\r\n    Vx_L2 = u(9);  %ٶȣUnit:km/h\r\n    Vx_R2 = u(10); %ҺٶȣUnit:km/h\r\n    \r\n    Car_X = 0.5*(x_L2 + x_R2);%X꣬Unit:m\r\n    Car_Y = 0.5*(y_L2 + y_R2);%Y꣬Unit:m\r\n    Vx_km_h = 0.5*(Vx_L2 + Vx_R2);%Ĵٶ,Unitkm/h\r\n    Steer_deg = 0.5*(Steer_L1 + Steer_R1);%ЧǰƫǣUnitdeg\r\n    \r\n    Vx_m_s  = Vx_km_h/3.6;%%Ĵٶ in (m/s),Unitm/s    \r\n    Steer_rad = Steer_deg*pi/180;%Чǰƫin (rad)Unitdegs-->rad;\r\n\r\nif (InitialGapflag < 3) %  Ignore the first few inputs\r\n    InitialGapflag = InitialGapflag + 1;\r\n    X_pred = Car_X; \r\n    Y_pred = Car_Y; \r\n    Yaw_pred = Yaw;\r\n    Previous_States.X_pred = Car_X; \r\n    Previous_States.Y_pred = Car_Y; \r\n    Previous_States.Yaw_pred = Yaw;\r\nelse % start control\r\n    %-----I. Update predicted states using differential equation--------%\r\n%     Updated_state = func_UpdateState_dsolve_2_7(Previous_States, lfr, Vx_m_s, Steer_rad, Ts);\r\n\r\n    %-----II. Update predicted states using RK4-------%\r\n    \r\n    %-----III. Update predicted states using Euler Method------%\r\n    Updated_state = func_UpdateState_EulerM_2_7(Previous_States, lfr, Vx_m_s, Steer_rad, Ts);\r\n    \r\n    X_pred = Updated_state.X_pred; \r\n    Y_pred = Updated_state.Y_pred; \r\n    Yaw_pred = Updated_state.Yaw_pred;\r\n    \r\n    Previous_States.X_pred = X_pred; \r\n    Previous_States.Y_pred = Y_pred; \r\n    Previous_States.Yaw_pred = Yaw_pred;\r\n\r\n    %-----Estimate Steer_ratio-----%  \r\n%     [Steer_SW_hat, Steer_ratio, Rinv_f] = func_SteerRatio_Estimation_RLS(Steer_deg, Steer_SW);\r\n%     Hat_err = Steer_SW_hat - Steer_SW;\r\n    [Steer_SW_hat, Steer_ratio_vector] = func_SteerRatio_Estimation_RLS_array(Steer_deg, Steer_SW);\r\n    Steer_ratio =sum(Steer_ratio_vector);\r\n \r\n \r\nend % End of if (Initialflag < 3) % \r\n\r\n    \r\n    sys = [Car_X; Car_Y; Yaw; X_pred; Y_pred; Yaw_pred; Vx_m_s; Steer_rad; Steer_SW; Steer_ratio];  \r\n       \r\n% end  %End of mdlOutputs.\r\n\r\n"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/ReadMe",
    "content": "Kinematic Model Validation\n"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/SimRes_Plot.m",
    "content": "\r\nclose all\r\nNum = length(u.signals.values(:,1));\r\nCar_X = u.signals.values(:,1); \r\nCar_Y = u.signals.values(:,2); \r\nYaw = u.signals.values(:,3); \r\nX_pred = u.signals.values(:,4); \r\nY_pred = u.signals.values(:,5); \r\nYaw_pred = u.signals.values(:,6); \r\nVx_m_s = u.signals.values(:,7); \r\nSteer_rad = u.signals.values(:,8); \r\nSteer_SW = u.signals.values(:,9); \r\nSteer_ratio = u.signals.values(:,10);\r\n\r\n\r\nratio = mean(Steer_ratio);\r\nfprintf('the mean-ratio between Steer_SW and front-wheel-steering is: %f\\n', ratio); \r\n\r\n%%\r\nlw=2;\r\nfigure\r\nplot(Car_X, Car_Y,'b',X_pred, Y_pred,'r','Linewidth',lw);\r\nlegend('CarSim Pos','ModelPredict Pos');\r\nxlabel('X (m)','FontName','Times New Roman','FontSize',14)\r\nylabel('Y(m)','FontName','Times New Roman','FontSize',14,'Rotation',90)\r\ntitle('Pos compare');\r\naxis tight\r\n\r\nfigure\r\nplot(1:Num, Yaw,'b',1:Num, Yaw_pred,'r','Linewidth',lw);\r\nlegend('Yaw','Yaw pred');\r\nxlabel('Data Index','FontName','Times New Roman','FontSize',14)\r\nylabel('Yaw angle (rad)','FontName','Times New Roman','FontSize',14,'Rotation',90)\r\ntitle('Yaw angle predict');\r\naxis tight\r\n\r\nfigure\r\nplot(1:Num, Steer_SW, 'b',1:Num, (ratio*180/pi)*Steer_rad,'k', 'Linewidth',lw);\r\ngrid on\r\nlegend('Steer SW','Desired steer SW');\r\nxlabel('Data Index','FontName','Times New Roman','FontSize',14)\r\nylabel('Steer_SW angle (deg)','FontName','Times New Roman','FontSize',14,'Rotation',90)\r\ntitle('Steer SW predict');\r\naxis tight\r\n\r\n"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/func_SteerRatio_Estimation_RLS.m",
    "content": "function [y, Bout, R_f_out] = func_SteerRatio_Estimation_RLS(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_f, Num_f, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_f: is also called the \"forgetting\" exponential weight factor\r\n%     Num_f is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_f F_f B_f lambda_f  Num_f  Rinv_f  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_f = d;\r\n%         delta = delta_n;\r\n        Num_f = FIR_Num;\r\n        Rinv_f = delta_n*eye(Num_f);\r\n        F_f = zeros(Num_f,1);\r\n        Y_f = zeros(1, Num_f);\r\n        B_f =  18; %zeros(1,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_f:-1:2\r\n            F_f(J) = F_f(J-1);\r\n            Y_f(J) = Y_f(J-1);\r\n        end;\r\n        F_f(1) = f;\r\n        Y_f(1) = d;\r\n        % Perform the convolution\r\n        y= F_f'*B_f;\r\n        error=Y_f-y;% 1*nd\r\n        % Kalman gains\r\n        K = Rinv_f*F_f/(lambda_f + F_f'*Rinv_f*F_f);\r\n        % Update Rinv_f\r\n        Rinvn = (Rinv_f - K*F_f'*Rinv_f)/lambda_f;\r\n        % Update the filter coefficients\r\n        B_f = B_f + K*error;\r\n        Rinv_f = Rinvn;\r\n\r\n        Bout = B_f;     \r\n        R_f_out = Rinv_f;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/func_SteerRatio_Estimation_RLS_array.m",
    "content": "function [y, Bout] = func_SteerRatio_Estimation_RLS_array(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_r, Num_r, delta)\r\n%     d = lambda_r: is the convergence rate parameter,\r\n%           also called the \"forgetting\" exponential weight factor\r\n%     FIR_Num is the filter length\r\n%     delta_n are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_r B_r lambda_r  Num_r  Rinv_r  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_r = d;\r\n%         delta = delta_n;\r\n        Num_r = FIR_Num;\r\n        Rinv_r = delta_n*eye(Num_r);\r\n        F_r = zeros(Num_r,1);\r\n        B_r = zeros(Num_r,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_r:-1:2\r\n            F_r(J) = F_r(J-1);\r\n        end;\r\n        F_r(1) = f;\r\n        % Perform the convolution\r\n        y= F_r'*B_r;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_r*F_r/(lambda_r + F_r'*Rinv_r*F_r);\r\n        % Update Rinv_r\r\n        Rinvn = (Rinv_r - K*F_r'*Rinv_r)/lambda_r;\r\n        % Update the filter coefficients\r\n        B_r = B_r + K*error;\r\n        Bout = B_r;\r\n        Rinv_r = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/func_UpdateState_EulerM_2_7.m",
    "content": "function [Updated_state] = func_UpdateState_EulerM_2_7(Previous_States, lfr, Vx_m_s, u, Ts)\r\n% validation of dynamic model (2.26) use dsolve\r\n    \r\n    X_init      = Previous_States.X_pred;\r\n    Y_init      = Previous_States.Y_pred;\r\n    Yaw_init    = Previous_States.Yaw_pred;\r\n\r\n    Updated_state.X_pred = X_init + Ts * Vx_m_s*cos(Yaw_init);\r\n    Updated_state.Y_pred = Y_init + Ts * Vx_m_s*sin(Yaw_init);\r\n    Updated_state.Yaw_pred = Yaw_init + Ts * Vx_m_s*tan(u)/lfr;\r\nend"
  },
  {
    "path": "Chapter-2/chap2_KinematicModel_Validation/func_UpdateState_dsolve_2_7.m",
    "content": "function [Updated_state] = func_UpdateState_dsolve_2_7(Previous_States, lfr, Vx_m_s, Steer_rad, Ts)\r\n% validation of dynamic model (2.26) use dsolve\r\n    \r\n    X_init      = Previous_States.X_pred;\r\n    Y_init      = Previous_States.Y_pred;\r\n    Yaw_init    = Previous_States.Yaw_pred;\r\n\r\n    XOUT=dsolve('Dx-Vx_m_s*cos(z) = 0', ...\r\n                'Dy-Vx_m_s*sin(z) = 0', ...\r\n                'Dz-Vx_m_s*tan(Steer_rad)/lfr = 0', ...\r\n                'x(0) = X_init', ...\r\n                'y(0) = Y_init', ...\r\n                'z(0) = Yaw_init');%z denotes yawangle\r\n    t=0.05; % independent variable is 't' means sample time\r\n    X_pred   = eval(XOUT.x);\r\n    Y_pred   = eval(XOUT.y);\r\n    Yaw_pred = eval(XOUT.z);\r\n    \r\n    Updated_state.X_pred = X_pred;\r\n    Updated_state.Y_pred = Y_pred;\r\n    Updated_state.Yaw_pred = Yaw_pred;\r\nend\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/CalLocalCorneringStiffness.m",
    "content": "function [Car] = CalLocalCorneringStiffness(alpha_local)\r\n    syms AL\r\nm  = 1540;   %mΪ,Kg; Sprung mass = 1370\r\ng  = 9.8;\r\nLf = 1.11;  %a\r\n% Lr = 1.67;  %bǰ־복ĵľ룬в\r\nL  = 2.78;  %VehiclePara.Lf + VehiclePara.Lr;\r\nmu = 1.0; % 0.55; %Ħ\r\nFz = 0.5*m*g*Lf/L;\r\n% Calphaf = 91926; %unit: N/rad\r\nCalphar = 75066; %unit: N/rad \r\n    \r\n\r\nFyf0 = -Calphar * tan(AL) + power(Calphar,2) * tan(AL)* abs(tan(AL))/(3*mu*Fz) - power(Calphar,3)*power(tan(AL),3)/(27*mu*mu*Fz*Fz);\r\n\r\nCa_Jcb = jacobian(Fyf0, AL); \r\n\r\nTempt = subs(Ca_Jcb,alpha_local);\r\n\r\nCar = -eval(Tempt);\r\n\r\n\r\n    "
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/Calpha.csv",
    "content": "90675,73570,82122\r\n90823,73762,82293\r\n90914,73927,82420\r\n90973,74069,82521\r\n90576,74199,82388\r\n90696,74274,82485\r\n90915,74297,82606\r\n91016,74314,82665\r\n91113,74348,82731\r\n91225,74400,82812\r\n91324,74463,82893\r\n91408,74530,82969\r\n91477,74596,83037\r\n91538,74660,83099\r\n91593,74722,83158\r\n91500,74784,83142\r\n91486,74839,83162\r\n91581,74872,83227\r\n91656,74888,83272\r\n91715,74902,83308\r\n91764,74921,83343\r\n91810,74946,83378\r\n91851,74974,83413\r\n91889,75004,83447\r\n91924,75036,83480\r\n91972,75067,83520\r\n91997,75098,83547\r\n91940,75129,83535\r\n91934,75156,83545\r\n92001,75169,83585\r\n92023,75172,83598\r\n92064,75176,83620\r\n92074,75190,83632\r\n92109,75192,83651\r\n92117,75206,83661\r\n92149,75224,83686\r\n92154,75236,83695\r\n92183,75253,83718\r\n92188,75270,83729\r\n92154,75288,83721\r\n92166,75302,83734\r\n92200,75310,83755\r\n92204,75315,83759\r\n92228,75320,83774\r\n92230,75327,83778\r\n92252,75334,83793\r\n92251,75342,83797\r\n92271,75351,83811\r\n92269,75359,83814\r\n92287,75367,83827\r\n92285,75375,83830\r\n92244,75383,83814\r\n92260,75387,83823\r\n92262,75384,83823\r\n92277,75380,83829\r\n92271,75377,83824\r\n92283,75376,83829\r\n92275,75376,83826\r\n92275,75377,83826\r\n92284,75378,83831\r\n92281,75378,83829\r\n92283,75380,83831\r\n92260,75382,83821\r\n92243,75383,83813\r\n92252,75380,83816\r\n92256,75374,83815\r\n92245,75368,83807\r\n92246,75363,83805\r\n92246,75359,83803\r\n92233,75355,83794\r\n92230,75352,83791\r\n92228,75349,83789\r\n92215,75345,83780\r\n92213,75342,83777\r\n92202,75338,83770\r\n92189,75334,83761\r\n92186,75329,83757\r\n92182,75323,83753\r\n92167,75318,83742\r\n92159,75312,83735\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/Generate1DLookuptable_BT.m",
    "content": "function Generate1DLookuptable_BT()\r\n%------------------------------------------------------------------%\r\n% Brush Tire Model by Pacejka\r\n% Using Brush tire model to calcualte Fy \r\n% Assume slip = 0, \r\n%------------------------------------------------------------------%\r\n    mu = 1.0;  %Ħ\r\n%********(1)calculate normal tire load **************%\r\n    m  = 1540; %Ϊ,Kg\r\n    g  = 9.8;\r\n    lf = 1.11; %unit:m\r\n    lr = 1.67; %unit:m ǰ־복ĵľ룬в\r\n    L = 2.78;  %unit:m\r\n    Fzf = 0.5*m*g*lr/L;   \r\n%********(2)趨 **************%\r\n    Fz0=4100;                     %nominal (rated) load(>0,N  %ֱغ\r\n    Pky1=-12.95;Pky2=1.72;Pky3=0.22; \r\n    r=0; %0.1*pi/180;                 %camber angle \r\n    sr=sin(r);                        %r ǣsr ʾr*\r\n    Kya0=Pky1*Fz0*sin(2*atan(Fzf/(Pky2*Fz0)));%ȡlamKya=1 \r\n    Calpha = -1*Kya0*(1-Pky3*sr^2);  \r\n    Ca = 2* Calpha;\r\n%********(3)alpha processing **************%\r\n%     Alpha_max = atan(3*1540*9.8*0.55*1.11/(140000*2.78))*180/pi; % 4deg\r\n%     alphamax = atan(3*mu*Fzf/Ca)*180/pi; % Լ8deg\r\n%     alpha = -alphamax:0.1:alphamax;\r\n    alpha = -8:0.1:8;\r\n    Alpha_rad = alpha.*pi/180;% % alpha  in deg, transform into rad\r\n    tanalpha_rad = tan(Alpha_rad);\r\n%********(4) Using Brush tire model to calcualte Fy  **************%\r\n    Fyf = -Calpha * tanalpha_rad + power(Calpha,2) * tanalpha_rad.*abs(tanalpha_rad)/(3*mu*Fzf) - power(Calpha,3)*power(tanalpha_rad,3)/(27*mu*mu*Fzf*Fzf); \r\n    FyBT  = Fyf;\r\n\r\n%     table(:,1) = FyBT;\r\n%     table(:,2) = alpha;\r\n%     csvwrite('BTlookuptable_mu1_m1540.csv',table); \r\n\r\n%********(5) Using MF tire model to calcualte Fy  **************% \r\nnum = length(alpha);\r\nFyMF = zeros(num,1);\r\nfor i = 1:1:num\r\n    FyMF(i) = func_MFTyreModel_puresideslip(Fzf, alpha(i));\r\nend\r\n\r\n    plot(alpha, FyBT,'b',alpha, FyMF,'r');\r\n    grid on\r\n\r\n%     table(:,1) = FyMF;\r\n%     table(:,2) = alpha;\r\n%     csvwrite('MFlookuptable_mu1_m1540.csv',table);     \r\n    \r\n%     Alpha_max = atan(3*1973*9.8*0.55*1.53/(140000*2.76))*180/pi;\r\n%     Alpha_max = atan(3*1540*9.8*0.55*1.11/(140000*2.78))*180/pi;\r\n\r\n    \r\nend"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/LEO_TireModel_Validation.sim",
    "content": "SIMFILE\r\nINPUT C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run280_all.par\r\nECHO C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run280_echo.par\r\nFINAL C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run280_end.par\r\nLOGFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run280_log.txt\r\nERDFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run280.erd\r\nDLLFILE C:\\Program Files (x86)\\CarSim810_Prog\\Programs\\Solvers\\Default64\\i_i.dll\r\nEND\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/LookupTable_test.m",
    "content": "function  LookupTable_test(u)\r\n\r\nAlpha_L1    = u.signals.values(:,14);\r\nAlpha_L2    = u.signals.values(:,15);\r\n\r\nFy_L1       = u.signals.values(:,22);\r\nFy_L2       = u.signals.values(:,23);\r\nNum         = length(Fy_L2);\r\n\r\nFy_Alpha_ref = csvread('MFlookuptable_mu1_m1540.csv');\r\n\r\nfor i=1:1:Num\r\n    Alpha_LT1(i) = func_LookupTable_alpha(Fy_Alpha_ref, Fy_L1(i)) ;\r\n    Alpha_LT2(i) = func_LookupTable_alpha(Fy_Alpha_ref, Fy_L2(i)) ;\r\nend\r\n\r\nfigure (1)\r\nplot(1:Num, Alpha_LT1,'b',1:Num, Alpha_L1,'b*',1:Num, Alpha_L2,'r',1:Num, Alpha_LT2,'r*');\r\ngrid on\r\n\r\nend\r\n\r\n\r\nfunction [alpha] = func_LookupTable_alpha(Fy_Alpha_ref, Fy)\r\n%***************************************************************%\r\n% 1. Lookup a pre-defined table to convert the optimal Fyf to steering angle \r\n% 2. then transform the steering angle to Steer_SW\r\n%***************************************************************%\r\n\talpha = 0;\r\n%     Fy_Alpha_ref = csvread('lookuptable_mu055_m1540.csv');\r\n    TableSize = size(Fy_Alpha_ref); % row and column\r\n    NumRow = TableSize(1,1);        %get the number of rows\r\n    Index = 1;     \r\n    while 1\r\n        if Fy > Fy_Alpha_ref(1,1)\r\n            alpha = Fy_Alpha_ref(1,2);\r\n            break; \r\n        elseif Fy < Fy_Alpha_ref(NumRow,1)\r\n            alpha = Fy_Alpha_ref(NumRow,2);\r\n            break; \r\n        else % FytableΧ֮\r\n            if Fy < Fy_Alpha_ref(Index,1)\r\n                Index = Index+1;\r\n            else\r\n                k_slope = (Fy_Alpha_ref(Index,2)-Fy_Alpha_ref(Index-1,2))/(Fy_Alpha_ref(Index,1)-Fy_Alpha_ref(Index-1,1));\r\n                alpha=Fy_Alpha_ref(Index-1,2)+(Fy-Fy_Alpha_ref(Index-1,1))* k_slope;              \r\n                break;              \r\n            end  \r\n        end        \r\n    end % end of while\r\n%     alpha  = alpha*pi/180; %unit: deg-->rad\r\nend"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/MFlookuptable_mu1_m1540.csv",
    "content": "3793.9,-8\n3783.1,-7.9\n3771.9,-7.8\n3760.2,-7.7\n3748,-7.6\n3735.2,-7.5\n3721.9,-7.4\n3708.1,-7.3\n3693.7,-7.2\n3678.7,-7.1\n3663.1,-7\n3646.8,-6.9\n3629.9,-6.8\n3612.3,-6.7\n3594,-6.6\n3574.9,-6.5\n3555.1,-6.4\n3534.6,-6.3\n3513.2,-6.2\n3491,-6.1\n3468,-6\n3444.1,-5.9\n3419.2,-5.8\n3393.5,-5.7\n3366.8,-5.6\n3339.1,-5.5\n3310.4,-5.4\n3280.7,-5.3\n3250,-5.2\n3218.1,-5.1\n3185.2,-5\n3151.1,-4.9\n3115.8,-4.8\n3079.4,-4.7\n3041.8,-4.6\n3003,-4.5\n2962.9,-4.4\n2921.5,-4.3\n2878.9,-4.2\n2835,-4.1\n2789.7,-4\n2743.2,-3.9\n2695.2,-3.8\n2646,-3.7\n2595.4,-3.6\n2543.4,-3.5\n2490,-3.4\n2435.3,-3.3\n2379.1,-3.2\n2321.7,-3.1\n2262.8,-3\n2202.6,-2.9\n2141.1,-2.8\n2078.2,-2.7\n2014,-2.6\n1948.5,-2.5\n1881.7,-2.4\n1813.7,-2.3\n1744.5,-2.2\n1674.1,-2.1\n1602.5,-2\n1529.8,-1.9\n1456,-1.8\n1381.2,-1.7\n1305.3,-1.6\n1228.6,-1.5\n1150.9,-1.4\n1072.4,-1.3\n993.04,-1.2\n912.97,-1.1\n832.21,-1\n750.82,-0.9\n668.86,-0.8\n586.39,-0.7\n503.46,-0.6\n420.15,-0.5\n336.51,-0.4\n252.61,-0.3\n168.52,-0.2\n84.291,-0.1\n-0,0\n-84.3,0.1\n-168.59,0.2\n-252.86,0.3\n-337.11,0.4\n-421.31,0.5\n-505.46,0.6\n-589.53,0.7\n-673.51,0.8\n-757.37,0.9\n-841.08,1\n-924.62,1.1\n-1007.9,1.2\n-1091,1.3\n-1173.8,1.4\n-1256.2,1.5\n-1338.2,1.6\n-1419.7,1.7\n-1500.7,1.8\n-1581.1,1.9\n-1660.8,2\n-1739.8,2.1\n-1818,2.2\n-1895.3,2.3\n-1971.7,2.4\n-2047,2.5\n-2121.2,2.6\n-2194.2,2.7\n-2266,2.8\n-2336.4,2.9\n-2405.5,3\n-2473.1,3.1\n-2539.2,3.2\n-2603.7,3.3\n-2666.6,3.4\n-2727.8,3.5\n-2787.4,3.6\n-2845.3,3.7\n-2901.4,3.8\n-2955.7,3.9\n-3008.3,4\n-3059.1,4.1\n-3108.1,4.2\n-3155.3,4.3\n-3200.7,4.4\n-3244.4,4.5\n-3286.4,4.6\n-3326.6,4.7\n-3365.2,4.8\n-3402.1,4.9\n-3437.3,5\n-3471,5.1\n-3503.1,5.2\n-3533.8,5.3\n-3562.9,5.4\n-3590.6,5.5\n-3617,5.6\n-3642,5.7\n-3665.7,5.8\n-3688.2,5.9\n-3709.4,6\n-3729.6,6.1\n-3748.6,6.2\n-3766.5,6.3\n-3783.4,6.4\n-3799.4,6.5\n-3814.4,6.6\n-3828.5,6.7\n-3841.7,6.8\n-3854.2,6.9\n-3865.9,7\n-3876.8,7.1\n-3887,7.2\n-3896.6,7.3\n-3905.5,7.4\n-3913.8,7.5\n-3921.5,7.6\n-3928.7,7.7\n-3935.3,7.8\n-3941.5,7.9\n-3947.2,8\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/Main_Sampletime_Abstract.m",
    "content": "function [sys,x0,str,ts] =Main_Sampletime_Abstract(t,x,u,flag)\r\n%***************************************************************%\r\n% Carsim sample time S֮Ĺϵ \r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n% end %  end sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%***************************************************************%\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n%***************************************************************% \r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 5;  %ģɢ״̬ĸ,ʵϱapp ûõֵֻʾɢģ\r\nsizes.NumOutputs     = 38;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%  End of mdlInitializeSizes\r\n\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x; \r\n    \r\n% end     %End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n%tǲʱ, x״̬, u(simulinkģ)\r\n    sys = u;\r\n     \r\n% end  %End of mdlOutputs.\r\n\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/ModelValidation_BrushTire_Cfa.m",
    "content": "% function ModelValidation_BrushTire_Cfa(u)\r\n%֤Ca = By*Cy*Dy\r\nmu = 1.0;\r\nalpha_L1 = u.signals.values(:,14);\r\nalpha_L2 = u.signals.values(:,15);\r\nalpha_R1 = u.signals.values(:,16);\r\nalpha_R2 = u.signals.values(:,17);\r\nFz_L1    = u.signals.values(:,18);\r\nFz_L2    = u.signals.values(:,19);\r\nFz_R1    = u.signals.values(:,20);\r\nFz_R2    = u.signals.values(:,21);\r\nFy_L1    = u.signals.values(:,22);\r\nFy_L2    = u.signals.values(:,23);\r\nFy_R1    = u.signals.values(:,24);\r\nFy_R2    = u.signals.values(:,25);\r\n\r\niStart = 1;\r\nNum = length(alpha_L1);\r\nFyL2 = zeros(Num,1);\r\nFyL2C = zeros(Num,1);\r\nFyR2 = zeros(Num,1);\r\nFyR2C = zeros(Num,1);\r\n\r\nfor index = 1:1:Num\r\n    [Calphar1(index),Car1(index),FyL2(index),FyL2C(index)] = func_BrushTyreModel_puresideslip(Fz_L2(index), alpha_L2(index), mu);\r\n    [Calphar2(index),Car2(index),FyR2(index),FyR2C(index)] = func_BrushTyreModel_puresideslip(Fz_R2(index), alpha_R2(index), mu);    \r\n    CarM1(index) = Fy_L2(index)/(alpha_L2(index)*pi/180);\r\n    CarM2(index) = Fy_R2(index)/(alpha_R2(index)*pi/180);\r\n    \r\n    FyL2MF(index) = func_MFTyreModel_puresideslip(Fz_L2(index), alpha_L2(index));\r\n    FyR2MF(index) = func_MFTyreModel_puresideslip(Fz_R2(index), alpha_R2(index));\r\n    \r\nend\r\n\r\nFyr   = Fy_L2 + Fy_R2;\r\nFyrC   = FyL2C + FyR2C;\r\nFyrBT  = FyL2 + FyR2;\r\nFyrMF  = FyL2MF + FyR2MF;\r\n\r\nfigure (1)\r\nplot(iStart:Num, Fyr,'B',iStart:Num, FyrBT,'b*',iStart:Num, FyrC,'r',iStart:Num, FyrMF,'r*');\r\ngrid on\r\n\r\n% figure (1)\r\n% plot(iStart:Num, Fy_L2,'B',iStart:Num, FyL2,'b*',iStart:Num, FyL2C,'r');\r\n% grid on\r\n% figure (2)\r\n% plot(iStart:Num, Fy_R2,'B',iStart:Num, FyR2,'b*',iStart:Num, FyR2C,'r');\r\n% grid on\r\n\r\n% figure (3)\r\n% plot(iStart:Num, Calphar1,'b',iStart:Num, Car1,'b*',iStart:Num, CarM1,'r');\r\n% grid on\r\n% figure (4)\r\n% plot(iStart:Num, Calphar2,'b',iStart:Num, Car2,'b*',iStart:Num, CarM2,'r');\r\n% grid on\r\n\r\n% end % End of func"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/ModelValidation_MFTire.m",
    "content": "% function ModelValidation_MFTire(u)\r\n%ȱǲmuģеá\r\n%Ĳmu=1²Եġ\r\nclc\r\nclose all\r\n\r\nmu = 1.0; % 0.3\r\n\r\nalpha_L1 = u.signals.values(:,14);\r\nalpha_L2 = u.signals.values(:,15);\r\nalpha_R1 = u.signals.values(:,16);\r\nalpha_R2 = u.signals.values(:,17);\r\nFz_L1    = u.signals.values(:,18);\r\nFz_L2    = u.signals.values(:,19);\r\nFz_R1    = u.signals.values(:,20);\r\nFz_R2    = u.signals.values(:,21);\r\nFy_L1    = u.signals.values(:,22);\r\nFy_L2    = u.signals.values(:,23);\r\nFy_R1    = u.signals.values(:,24);\r\nFy_R2    = u.signals.values(:,25);\r\n\r\niStart = 1;\r\nNum = length(alpha_L1);\r\nFyL1 = zeros(Num,1);\r\nFyL2 = zeros(Num,1);\r\nFyR1 = zeros(Num,1);\r\nFyR2 = zeros(Num,1);\r\nfor index = 1:1:Num\r\n    FyL1(index) = func_MFTyreModel_puresideslip(Fz_L1(index), alpha_L1(index));\r\n    FyL2(index) = func_MFTyreModel_puresideslip(Fz_L2(index), alpha_L2(index));\r\n    FyR1(index) = func_MFTyreModel_puresideslip(Fz_R1(index), alpha_R1(index));\r\n    FyR2(index) = func_MFTyreModel_puresideslip(Fz_R2(index), alpha_R2(index));\r\nend\r\n\r\nfigure (1)\r\nplot(iStart:Num, Fy_L1,'b',iStart:Num, FyL1,'b*',iStart:Num, Fy_R1,'r',iStart:Num, FyR1,'r*');\r\nlegend('Fyf-L1-CarSim','Fyf-L1-Pacejka','Fyf-R1-CarSim','Fyf-R1-Pacejka');\r\ngrid on\r\n\r\nfigure (2)\r\nplot(iStart:Num, Fy_L2,'b',iStart:Num, FyL2,'b*',iStart:Num, Fy_R2,'r',iStart:Num, FyR2,'r*');\r\nlegend('Fyr-L2-CarSim','Fyf-L2-Pacejka','Fyf-R2-CarSim','Fyf-R2-Pacejka');\r\ngrid on\r\n\r\n% end % End of func"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/TireModelValidation.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"TireModelValidation\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.103\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"ModelValidation_Pacejka\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [1077.0, 187.0, 719.0, 519.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[669.0, 342.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[166.35378690628988, 55.402524604193076]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Tue Sep 03 16:59:42 2019\"\r\n  RTWModifiedTimeStamp\t  489016209\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:103>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"TireModelValidation\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"TireModelValidation\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"30\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"TireModelValidation\"\r\n    Location\t\t    [1077, 187, 1796, 706]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"96\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [0, 1]\r\n      Position\t\t      [240, 154, 340, 216]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"LEO_TireModel_Validation.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [375, 152, 520, 218]\r\n      ZOrder\t\t      12\r\n      FunctionName\t      \"Main_Sampletime_Abstract\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"95\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [560, 170, 620, 200]\r\n      ZOrder\t\t      11\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      17\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"To Workspace1\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      18\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/chapter2_2_2.m",
    "content": "%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%---------------------------------------------------------------%\r\n%% \r\n% Calculate lateral tire force under pure side slip angle \r\n% default friction coefficient mu=1.0\r\nalpha=linspace(-10,10,100);   %-10deg~10degֵ20ɲƫǺ\r\nr=0;  %ǣΪ\r\n%*************lateral coefficients*******************************%\r\na0 = 1.65;\r\na1 = -34;\r\na2 = 1250;\r\na3 = 3036;\r\na4 = 12.8;\r\na5 = 0.00501;\r\na6 = -0.02103;\r\na7 = 0.77394;\r\na8 = 0.0022890;\r\na9 = 0.013442;\r\na10 = 0.003709;\r\na11 = 19.1656;\r\na12 = 1.21356;\r\na13 = 6.26206;\r\n\r\n% Calc lateral tire force with Fz=2.5 kN%\r\nFz   = 2.5;%ֱغɣλKN\r\n\r\n%**********parameters *********************%\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\n\r\n%***********lateral force formulation************%\r\nFy_2_5kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy;%unit:N\r\nFy_2_5kN = -Fy_2_5kN./1000;%unit:kN\r\n\r\n% Calc lateral tire force with Fz=5 kN%\r\nFz   = 5;%ֱغɣλKN\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\nFy_5kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy;%unit:N\r\nFy_5kN = -Fy_5kN./1000;%unit:kN\r\n\r\n% Calc lateral tire force with Fz=8.5 kN%\r\nFz   = 8.5;%ֱغɣλKN\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\nFy_8_5kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy; %unit:N\r\nFy_8_5kN = -Fy_8_5kN./1000; %unit:kN\r\n\r\n% Calc lateral tire force with Fz=14 kN%\r\nFz   = 14;%ֱغɣλKN\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\nFy_14kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy;%unit:N\r\nFy_14kN = -Fy_14kN./1000;%unit:kN\r\n\r\n%% plot result\r\nfigure (1);\r\nplot(alpha,Fy_2_5kN,'k',alpha,Fy_5kN,'k+',alpha,Fy_8_5kN,'k--',alpha,Fy_14kN,'k.','LineWidth',2);\r\ngrid  \r\nset(gca,'xlim',[-8 8]);                         %x᷶Χ \r\nset(gca,'xtick',[-8:1:8]);                      %x \r\nset(gca,'ylim',[-15 15])                        %y᷶Χ \r\nset(gca,'ytick',[-15:3:15]);                  %y \r\nlegend('Fz=2.5kN','Fz=5 kN','Fz=8.5 kN','Fz=14 kN');\r\nxlabel('ƫ/ (deg)'); \r\nylabel('/kN'); \r\ntitle('ֱͬغµ̥(ƫ)');\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/chapter2_3_2.m",
    "content": "%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%---------------------------------------------------------------%\r\n%%\r\n% ģƵѽõĲ\r\nsyms K_phi D_phi Theta_1 Theta_2 Theta_3\r\nsyms M hCG Iz Ix Vel g Calpha_f Calpha_r lf\r\n\r\n%ʵҪ峵ѧ΢ַ̣MintNintF1intF2int\r\nMint = [  M         0       -M*hCG          0;\r\n          0         Iz      0               0;\r\n          -M*hCG    0       Ix+M*hCG*hCG    0;\r\n          0         0       0               1];\r\nNint = [-Theta_1/Vel    M*Vel-Theta_2/Vel   0           M*g;\r\n        -Theta_2/Vel    -Theta_3/Vel        0           0;\r\n        0               -M*hCG*Vel          D_phi       K_phi-M*g*hCG;\r\n        0               0                   -1          0];\r\nF1int = [-Calpha_f; -lf*Calpha_f;  0;  0];\r\nF2int = [   0               0; \r\n            0               0;\r\n            K_phi           0;\r\n            0               0];\r\n%ͨ任õ״̬ռ䷽ʽĳѧ\r\n% dot{kesi} = Ac_11*kesi + B1cn_11 * u1 + B2cn_11*u2\r\nAc_11     = -Mint\\Nint;\r\nB1cn_11   = Mint\\F1int;\r\nB2cn_11   = Mint\\F2int;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/func_BrushTyreModel_puresideslip.m",
    "content": "function [Calphar, Car, Fyf, FyfC] = func_BrushTyreModel_puresideslip(Fz, alpha, mu)\r\n%------------------------------------------------------------------%\r\n% Brush Tire Model by Pacejka\r\n% Using Brush tire model to calcualte Fy \r\n% Assume slip = 0, mu=1.0\r\n%------------------------------------------------------------------%\r\n%-------Pacejka Tire 175/70 R13(symmetric)----------------------%\r\n%********(1)calculate normal tire load **************%\r\n    m  = 1540; %Ϊ,Kg\r\n    g  = 9.8;\r\n    lf = 1.11; %unit:m\r\n    lr = 1.67; %unit:m ǰ־복ĵľ룬в\r\n    L  = 2.78;  %unit:m\r\n    Fzf = 0.5*m*g*lr/L; \r\n    Fzr = 0.5*m*g*lf/L;\r\n\r\n    Fz0=4100;                     %nominal (rated) load(>0,N  %ֱغ\r\n    Pky1=-12.95;Pky2=1.72;Pky3=0.22; \r\n    r=0; %0.1*pi/180;                 %camber angle \r\n    sr=sin(r);                        %r ǣsr ʾr*\r\n%     Kyaf=Pky1*Fz0*sin(2*atan(Fzf/(Pky2*Fz0)));%ȡlamKya=1 \r\n%     Calphaf=-1*Kyaf*(1-Pky3*sr^2);   %Cfa = ByCyDy\r\n    Kyar=Pky1*Fz0*sin(2*atan(Fzr/(Pky2*Fz0)));%ȡlamKya=1 \r\n    Calphar=-1*Kyar*(1-Pky3*sr^2);  %Cra = ByCyDy\r\n\r\n%********(3)alpha processing **************%\r\n    Alpha_rad = alpha*pi/180;% % alpha  in deg, transform into rad\r\n    tanalpha_rad = tan(Alpha_rad);\r\n%********(4) Using Brush tire model to calcualte Fy  **************%\r\n    % use normal tire load from CarSim\r\n    Fyf0 = -Calphar * tanalpha_rad + power(Calphar,2) * tanalpha_rad* abs(tanalpha_rad)/(3*mu*Fz) - power(Calphar,3)*power(tanalpha_rad,3)/(27*mu*mu*Fz*Fz);\r\n    Fyf = Fyf0;\r\n    if 0 == Alpha_rad\r\n        Car = Calphar;\r\n    else\r\n        Car = Fyf/Alpha_rad;\r\n    end\r\n    \r\n    % use Constant normal tire load \r\n    FyfC0=-Calphar * tanalpha_rad + power(Calphar,2) * tanalpha_rad* abs(tanalpha_rad)/(3*mu*Fzr) - power(Calphar,3)*power(tanalpha_rad,3)/(27*mu*mu*Fzf*Fzf);\r\n    FyfC = FyfC0;\r\n    \r\nend"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/func_MFTyreModel_puresideslip.m",
    "content": "function [Fy0] = func_MFTyreModel_puresideslip(Fz, alpha)\r\n%------------------------------------------------------------------%\r\n% Magic Formula model \r\n%------------------------------------------------------------------%\r\n% Parameter values of Magic Formula from CarSim\r\nFz0=4100;                     %nominal (rated) load(>0,N  %ֱغ\r\nR0=0.298;                     %unloaded tyre radius (=ro)m  \r\ndfz=(Fz-Fz0)/Fz0;  \r\nmux = 1;  muy = 1;            % Tire/ground coefficients for this data\r\n% Slip_Ratio = 0;             % pure side slip\r\n%-------Pacejka Tire 175/70 R13(symmetric)----------------------%\r\nPcy1=1.29;  \r\nPdy1=-0.9;Pdy2=0.18;Pdy3=-4.5;  \r\nPey1=-1.07;Pey2=0.68;Pey3=-0.63;Pey4=-12.35;\r\nPky1=-12.95;Pky2=1.72;Pky3=0.22;     \r\nPhy1=0.0035;Phy2=-0.003; Phy3 = 0.045;  \r\nPvy1=0.045;Pvy2=-0.03;Pvy3=-0.174;Pvy4=-0.45;\r\nRby1 = 6.38;\r\n\r\n%----Lateral Force(pure side slip) input:ƫ ǲƫȡtanֵa*---%\r\nr=0; %0.1*pi/180;                 %camber angle \r\nsr=sin(r);                        %r ǣsr ʾr*\r\nCy=Pcy1;                          %ȡlamCy=1 \r\nta = tan(alpha *pi/180);          % \r\nuy=(Pdy1+Pdy2*dfz)*(1-Pdy3*sr^2);        %ȡlam(uy*)=1 \r\nDy=uy*Fz;   \r\nKya0=Pky1*Fz0*sin(2*atan(Fz/(Pky2*Fz0)));%ȡlamKya=1 \r\nKya=Kya0*(1-Pky3*sr^2);\r\nBy=Kya/(Cy*Dy);                      %ȡ¡y=0  \r\nShy=Phy3*sr;\r\nSvy=Fz*(Pvy3 + Pvy4*dfz)*sr;\r\nay=ta+Shy;  \r\nEy=(Pey1+Pey2*dfz)*(1-(Pey3+Pey4*sr)*sign(ay));\r\nFy0=Dy*sin(Cy*atan(By*ay-Ey.*(By*ay-atan(By*ay))))+Svy; \r\n% subplot(2,3,2) \r\n% plot(a,Fy0);grid  \r\n% set(gca,'xlim',[-10 10])                      \r\n% set(gca,'xtick',[-10:1:10]);                    \r\n% set(gca,'ylim',[-4000 4000])                  \r\n% set(gca,'ytick',[-4000:1000:4000]);             \r\n% xlabel('ƫ/ȣ'); \r\n% ylabel('ƫ/N'); \r\n% title('ƫ(໬)');   \r\n\r\n\r\nend % end of function\r\n\r\n% for i= 1:1:50001\r\n%     MF_Fy(i) = func_MFTyreModel(FzL1(i), alphaL1(i));\r\n% end"
  },
  {
    "path": "Chapter-2/chap2_TireModel_Validation/lookuptable_mu0.55_m1540.csv",
    "content": "4986.3,-8.8024\n4986.3,-8.7024\n4986.3,-8.6024\n4986.1,-8.5024\n4985.8,-8.4024\n4985.4,-8.3024\n4984.7,-8.2024\n4983.7,-8.1024\n4982.4,-8.0024\n4980.8,-7.9024\n4978.7,-7.8024\n4976.2,-7.7024\n4973.2,-7.6024\n4969.7,-7.5024\n4965.5,-7.4024\n4960.8,-7.3024\n4955.3,-7.2024\n4949.2,-7.1024\n4942.2,-7.0024\n4934.5,-6.9024\n4925.9,-6.8024\n4916.4,-6.7024\n4906,-6.6024\n4894.6,-6.5024\n4882.2,-6.4024\n4868.7,-6.3024\n4854.1,-6.2024\n4838.4,-6.1024\n4821.4,-6.0024\n4803.2,-5.9024\n4783.8,-5.8024\n4763,-5.7024\n4740.8,-5.6024\n4717.2,-5.5024\n4692.2,-5.4024\n4665.6,-5.3024\n4637.6,-5.2024\n4607.9,-5.1024\n4576.6,-5.0024\n4543.7,-4.9024\n4509,-4.8024\n4472.6,-4.7024\n4434.4,-4.6024\n4394.3,-4.5024\n4352.4,-4.4024\n4308.6,-4.3024\n4262.7,-4.2024\n4214.9,-4.1024\n4165.1,-4.0024\n4113.1,-3.9024\n4059,-3.8024\n4002.7,-3.7024\n3944.2,-3.6024\n3883.5,-3.5024\n3820.4,-3.4024\n3755,-3.3024\n3687.3,-3.2024\n3617,-3.1024\n3544.4,-3.0024\n3469.2,-2.9024\n3391.4,-2.8024\n3311.1,-2.7024\n3228.1,-2.6024\n3142.4,-2.5024\n3054,-2.4024\n2962.8,-2.3024\n2868.8,-2.2024\n2772,-2.1024\n2672.3,-2.0024\n2569.6,-1.9024\n2464,-1.8024\n2355.3,-1.7024\n2243.6,-1.6024\n2128.8,-1.5024\n2010.8,-1.4024\n1889.6,-1.3024\n1765.2,-1.2024\n1637.5,-1.1024\n1506.5,-1.0024\n1372.1,-0.90239\n1234.3,-0.80239\n1093,-0.70239\n948.29,-0.60239\n800.01,-0.50239\n648.15,-0.40239\n492.67,-0.30239\n333.52,-0.20239\n170.66,-0.10239\n4.0357,-0.0023943\n-162.76,0.097606\n-325.81,0.19761\n-485.13,0.29761\n-640.79,0.39761\n-792.82,0.49761\n-941.27,0.59761\n-1086.2,0.69761\n-1227.6,0.79761\n-1365.5,0.89761\n-1500.1,0.99761\n-1631.3,1.0976\n-1759.1,1.1976\n-1883.7,1.2976\n-2005,1.3976\n-2123.2,1.4976\n-2238.2,1.5976\n-2350,1.6976\n-2458.9,1.7976\n-2564.6,1.8976\n-2667.4,1.9976\n-2767.3,2.0976\n-2864.3,2.1976\n-2958.4,2.2976\n-3049.7,2.3976\n-3138.2,2.4976\n-3224,2.5976\n-3307.1,2.6976\n-3387.6,2.7976\n-3465.5,2.8976\n-3540.8,2.9976\n-3613.6,3.0976\n-3684,3.1976\n-3751.9,3.2976\n-3817.4,3.3976\n-3880.5,3.4976\n-3941.4,3.5976\n-4000,3.6976\n-4056.4,3.7976\n-4110.6,3.8976\n-4162.6,3.9976\n-4212.6,4.0976\n-4260.5,4.1976\n-4306.4,4.2976\n-4350.4,4.3976\n-4392.4,4.4976\n-4432.5,4.5976\n-4470.8,4.6976\n-4507.3,4.7976\n-4542.1,4.8976\n-4575.1,4.9976\n-4606.4,5.0976\n-4636.2,5.1976\n-4664.3,5.2976\n-4690.9,5.3976\n-4716,5.4976\n-4739.7,5.5976\n-4761.9,5.6976\n-4782.8,5.7976\n-4802.3,5.8976\n-4820.6,5.9976\n-4837.6,6.0976\n-4853.4,6.1976\n-4868.1,6.2976\n-4881.6,6.3976\n-4894.1,6.4976\n-4905.5,6.5976\n-4916,6.6976\n-4925.5,6.7976\n-4934.1,6.8976\n-4941.9,6.9976\n-4948.8,7.0976\n-4955,7.1976\n-4960.5,7.2976\n-4965.3,7.3976\n-4969.5,7.4976\n-4973.1,7.5976\n-4976.1,7.6976\n-4978.6,7.7976\n-4980.7,7.8976\n-4982.4,7.9976\n-4983.7,8.0976\n-4984.6,8.1976\n-4985.3,8.2976\n-4985.8,8.3976\n-4986.1,8.4976\n-4986.3,8.5976\n-4986.3,8.6976\n-4986.3,8.7976\n"
  },
  {
    "path": "Chapter-2/chapter2_2_2.m",
    "content": "%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%---------------------------------------------------------------%\r\n%% \r\n% Calculate lateral tire force under pure side slip angle \r\n% default friction coefficient mu=1.0\r\nalpha=linspace(-10,10,100);   %-10deg~10degֵ20ɲƫǺ\r\nr=0;  %ǣΪ\r\n%*************lateral coefficients*******************************%\r\na0 = 1.65;\r\na1 = -34;\r\na2 = 1250;\r\na3 = 3036;\r\na4 = 12.8;\r\na5 = 0.00501;\r\na6 = -0.02103;\r\na7 = 0.77394;\r\na8 = 0.0022890;\r\na9 = 0.013442;\r\na10 = 0.003709;\r\na11 = 19.1656;\r\na12 = 1.21356;\r\na13 = 6.26206;\r\n\r\n% Calc lateral tire force with Fz=2.5 kN%\r\nFz   = 2.5;%ֱغɣλKN\r\n\r\n%**********parameters *********************%\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\n\r\n%***********lateral force formulation************%\r\nFy_2_5kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy;%unit:N\r\nFy_2_5kN = -Fy_2_5kN./1000;%unit:kN\r\n\r\n% Calc lateral tire force with Fz=5 kN%\r\nFz   = 5;%ֱغɣλKN\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\nFy_5kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy;%unit:N\r\nFy_5kN = -Fy_5kN./1000;%unit:kN\r\n\r\n% Calc lateral tire force with Fz=8.5 kN%\r\nFz   = 8.5;%ֱغɣλKN\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\nFy_8_5kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy; %unit:N\r\nFy_8_5kN = -Fy_8_5kN./1000; %unit:kN\r\n\r\n% Calc lateral tire force with Fz=14 kN%\r\nFz   = 14;%ֱغɣλKN\r\nCy   = a0;%״\r\nDy   = a1*Fz^2+a2*Fz;%\r\nBCDy = a3*sin(2*atan(Fz/a4))*(1-a5*abs(r));%㴦Ĳն\r\nBy   = BCDy/(Cy*Dy);%ն\r\nShy  = a9*Fz+a10+a8*r;%ߵˮƽƯ\r\nky   = alpha+Shy;%X\r\nSvy  = a11*Fz*r+a12*Fz+a13;%ߵĴֱƯ\r\nEy   = a6*Fz^2+a7;%\r\nFy_14kN = Dy*sin(Cy*atan(By*ky-Ey*(By*ky-atan(By*ky))))+Svy;%unit:N\r\nFy_14kN = -Fy_14kN./1000;%unit:kN\r\n\r\n%% plot result\r\nfigure (1);\r\nplot(alpha,Fy_2_5kN,'k',alpha,Fy_5kN,'k+',alpha,Fy_8_5kN,'k--',alpha,Fy_14kN,'k.','LineWidth',2);\r\ngrid  \r\nset(gca,'xlim',[-8 8]);                         %x᷶Χ \r\nset(gca,'xtick',[-8:1:8]);                      %x \r\nset(gca,'ylim',[-15 15])                        %y᷶Χ \r\nset(gca,'ytick',[-15:3:15]);                  %y \r\nlegend('Fz=2.5kN','Fz=5 kN','Fz=8.5 kN','Fz=14 kN');\r\nxlabel('ƫ/ (deg)'); \r\nylabel('/kN'); \r\ntitle('ֱͬغµ̥(ƫ)');\r\n"
  },
  {
    "path": "Chapter-2/chapter2_3_2.m",
    "content": "%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%---------------------------------------------------------------%\r\n%%\r\n% ģƵѽõĲ\r\nsyms K_phi D_phi Theta_1 Theta_2 Theta_3\r\nsyms M hCG Iz Ix Vel g Calpha_f Calpha_r lf\r\n\r\n%ʵҪ峵ѧ΢ַ̣MintNintF1intF2int\r\nMint = [  M         0       -M*hCG          0;\r\n          0         Iz      0               0;\r\n          -M*hCG    0       Ix+M*hCG*hCG    0;\r\n          0         0       0               1];\r\nNint = [-Theta_1/Vel    M*Vel-Theta_2/Vel   0           M*g;\r\n        -Theta_2/Vel    -Theta_3/Vel        0           0;\r\n        0               -M*hCG*Vel          D_phi       K_phi-M*g*hCG;\r\n        0               0                   -1          0];\r\nF1int = [-Calpha_f; -lf*Calpha_f;  0;  0];\r\nF2int = [   0               0; \r\n            0               0;\r\n            K_phi           0;\r\n            0               0];\r\n%ͨ任õ״̬ռ䷽ʽĳѧ\r\n% dot{kesi} = Ac_11*kesi + B1cn_11 * u1 + B2cn_11*u2\r\nAc_11     = -Mint\\Nint;\r\nB1cn_11   = Mint\\F1int;\r\nB2cn_11   = Mint\\F2int;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/ReadMe",
    "content": "This folder holds simulation codes for Chapter 3\n\n* chatp3_MPC_Toolbox_DoubleInt: a simple example using MPC toolbox for speed tracking demo\n\n* chap3_MPC_SpeedCtrl_du: MPC for speed tracking control, with du as input\n\n* chap3_MPC_SpeedCtrl: Extended: MPC for speed tracking control, with u as input\n\n* chap3_MPC_AdaptiveCruiseCtrl_VLV: Extended: MPC for Adaptive Cruise Control, involve multi-vehicle joint simulation\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/Chapter3_MPC_ACC_ First Car (Ext. Sen.).par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run288.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 09:14 on September 01, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run288.par`08-30-2019`23:51:42\r\n#FullDataName CarSim Run Control`Chapter3_MPC_ACC: First Car (Ext. Sen.)`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex135.par`09-01-2019`08:50:47\r\n#FullDataName Models: Simulink`chapt3_Radar Active Cruise: First Car (Ext. Sen.)`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\\LEO_MPCACC_VLV1.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch126.par`08-31-2019`10:10:49\r\n#FullDataName I/O Channels: Export`Radar Active Cruising Export (Ext. Sen.)`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Xo\r\nEXP_Yo\r\nEXP_Yaw\r\nEXP_Ax\r\n#MiscYellow0\r\n#Number of Selected Channels: 5\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Xo\r\n#CHN_NAME: Yo\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Ax\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } Radar Active Cruising Export (Ext. Sen.)\r\n#Library : I/O Channels: Export\r\n#DataSet : Radar Active Cruising Export (Ext. Sen.)\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch126\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-31-2019 10:10:49\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch126.par\r\n\r\n#BlueLink1 I/O Channels: Export`Radar Active Cruising Export (Ext. Sen.)` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_ACC_ExtSen_Car1.sim\r\n#ENDMYellow\r\n\r\nLIVE_SERVER_UPDATE_FREQ_MAX 60\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt3_Radar Active Cruise: First Car (Ext. Sen.)\r\n#Library : Models: Simulink\r\n#DataSet : chapt3_Radar Active Cruise: First Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex135\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 08:50:47\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex135.par\r\n\r\n#BlueLink12 Models: Simulink`chapt3_Radar Active Cruise: First Car (Ext. Sen.)` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera138.par`08-02-2011`16:43:53\r\n#FullDataName Animator: Camera Setup`High Front View, Road Ref. (Rr. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y -1.65\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 355.5\r\nSET_ELEVATION 20\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y -1.65\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 355.5\r\n*SET_ELEVATION 20\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 40\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } High Front View, Road Ref. (Rr. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : High Front View, Road Ref. (Rr. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:53\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera138.par\r\n\r\n#BlueLink0 Animator: Camera Setup`High Front View, Road Ref. (Rr. Facing)` Road Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 2\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 1 0.6 0\r\nFLAG_10 288\r\nID_RUN 288\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle105.par`08-02-2011`16:42:23\r\n#FullDataName Vehicle: Assembly`B-Class, Sports Car`CS B-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\nOPT_PT 2\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp107.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Front Comp.`CS B-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.611\r\n*R_SPRING_R 0.611\r\n*R_DAMPER_L 0.611\r\n*R_DAMPER_R 0.611\r\n*CT_FX_L 1.9e-6\r\n*CT_FX_R 1.9e-6\r\n*CS_FY_L -1.4e-6\r\n*CS_FY_R -1.4e-6\r\n*CS_MZ_L 6.4e-4\r\n*CS_MZ_R 6.4e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 1.4e-4\r\n*CI_FY_R 1.4e-4\r\n*CI_MZ_L -2.75e-4\r\n*CI_MZ_R -2.75e-4\r\n*C_LONG_L 1.2e-5\r\n*C_LONG_R 1.2e-5\r\n*C_LAT_L 1.6e-5\r\n*C_LAT_R 1.6e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.611\r\n*R_JOUNCE_R 0.611\r\n*R_REBOUND_L 0.611\r\n*R_REBOUND_R 0.611\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock101.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big Car Damping`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE LINEAR\r\n-1410, -5008\r\n-720, -3436\r\n-390, -2324\r\n-210, -1792\r\n-90, -1008\r\n-20, -228\r\n20, 228\r\n90, 596\r\n200, 784\r\n390, 1100\r\n760, 1796\r\n1160, 2560\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big Car Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big Car Damping\r\n#Category:\r\n#FileID  : Shock101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock101.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 384\r\n\r\nMX_AUX_COEFFICIENT 384\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 384 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 384 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb104.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+25 mm / -55 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n24, 0\r\n25, 0\r\n26, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-56, -10000\r\n-55, 0\r\n-54, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +25 mm / -55 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +25 mm / -55 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb104.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+25 mm / -55 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.611\r\nCT_FX_COEFFICIENT 1.9e-6\r\nCS_FY_COEFFICIENT -1.4e-6\r\nCS_MZ_COEFFICIENT 6.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.4e-4\r\nCI_MZ_COEFFICIENT -2.75e-4\r\nC_LONG_COEFFICIENT 1.2e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.611\r\nCMP_RSTOP_COEFFICIENT 0.611\r\nENTER_PARSFILE Suspensions\\Springs\\Spring107.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`130.5 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 130.5\r\nFS_EXT_COEFFICIENT 130.5\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 130.5\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 130.5 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 130.5 N/mm\r\n#Category:\r\n#FileID  : Spring107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring107.par\r\n\r\n#BlueLink0 Suspension: Spring`130.5 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+25 mm / -55 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.611\r\nCT_FX_COEFFICIENT 1.9e-6\r\nCS_FY_COEFFICIENT -1.4e-6\r\nCS_MZ_COEFFICIENT 6.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.4e-4\r\nCI_MZ_COEFFICIENT -2.75e-4\r\nC_LONG_COEFFICIENT 1.2e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.611\r\nCMP_RSTOP_COEFFICIENT 0.611\r\n#BlueLink3 Suspension: Spring`130.5 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS B-Class } B-Class, Sports Car - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : B-Class, Sports Car - Front Comp.\r\n#Category: CS B-Class\r\n#FileID  : SuspCmp107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp107_note.txt\r\nFront spring rate chosen for a front ride frequency of 2.2 Hz and a front corner weight of 255 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp107_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp107.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Front Comp.` CS B-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin107.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`B-Class, Sports Car - Front Suspension`CS B-Class\r\niside 1\r\nL_TRACK 1480\r\nY_CL_SUSP 0\r\nM_US 60\r\n*IW_L 0.6\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.6\r\n*JNC_DESIGN_R 0\r\n*TOE_L -0.2\r\n*TOE_R -0.2\r\n*CAMBER_L -1\r\n*CAMBER_R -1\r\nR_US_STR 0.7\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -1\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -1\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS B-Class } B-Class, Sports Car - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : B-Class, Sports Car - Front Suspension\r\n#Category: CS B-Class\r\n#FileID  : IndKin107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin107_note.txt\r\nGeneric SLA front suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin107_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin107.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`B-Class, Sports Car - Front Suspension` CS B-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire104.par`08-02-2011`16:42:32\r\n#FullDataName Tire`205/45 R17`Performance Tires\r\nX_LENGTH 308\r\nZ_LENGTH 308\r\nY_LENGTH 205\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup101.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Sports Car`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL101.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Sports Car Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Sports Car Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Sports Car Tire\r\n#Category: Tires\r\n#FileID  : AniSTL101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL101.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Sports Car Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL102.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Sports Car Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Sports Car Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Sports Car Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL102.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Sports Car Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL103.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Sports Car Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Sports Car Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Sports Car Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL103.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Sports Car Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Sports Car\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Sports Car\r\n#Category: Tires\r\n#FileID  : StlGroup101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup101.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Sports Car` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 205\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet109.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 550 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 550; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 550 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 550 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet109.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 550 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 298\r\nR0 308\r\nFZ_TIRE_COEFFICIENT 242\r\nFZ_MAX 100000\r\nIT 1.1\r\nL_RELAX_X 28\r\nL_RELAX_Y 610\r\nVLOW_ALPHA 5\r\nRR_C 0.004\r\nRR_V 0.000025\r\nRR_FX 1\r\nOPT_TIRE_COMB 0\r\nENTER_PARSFILE Tires\\Mz\\TireMz104.par`08-02-2011`16:42:31\r\n#FullDataName Tire: Aligning Moment`205/45 R17`Performance Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1348.41, 2696.83, 4045.24, 5393.66, 6742.07, 8090.49, 9438.9, 10787.32\r\n0.5, 20.97, 40.83, 59.32, 76.25, 91.51, 105, 116.65, 126.42\r\n1, 32.44, 63.59, 93.15, 120.91, 146.66, 170.24, 191.46, 210.15\r\n1.5, 32.09, 63.43, 93.92, 123.47, 151.96, 179.23, 205.11, 229.37\r\n2, 26.48, 52.68, 78.68, 104.53, 130.23, 155.75, 181.01, 205.88\r\n2.5, 20.56, 41.09, 61.75, 82.65, 103.87, 125.46, 147.46, 169.87\r\n3, 15.73, 31.55, 47.63, 64.11, 81.1, 98.69, 116.97, 136\r\n3.5, 12.02, 24.19, 36.67, 49.6, 63.09, 77.26, 92.21, 108.04\r\n4, 9.18, 18.54, 28.24, 38.38, 49.1, 60.5, 72.69, 85.78\r\n4.5, 6.99, 14.17, 21.68, 29.64, 38.17, 47.35, 57.29, 68.12\r\n5, 5.26, 10.71, 16.5, 22.73, 29.49, 36.89, 45.02, 53.98\r\n5.5, 3.86, 7.93, 12.33, 17.15, 22.49, 28.44, 35.09, 42.53\r\n6, 2.73, 5.66, 8.92, 12.59, 16.76, 21.52, 26.94, 33.12\r\n6.5, 1.78, 3.77, 6.09, 8.8, 12, 15.76, 20.16, 25.28\r\n7, 0.99, 2.19, 3.7, 5.61, 7.99, 10.91, 14.44, 18.67\r\n7.5, 0.31, 0.83, 1.67, 2.89, 4.57, 6.78, 9.57, 13.03\r\n8, -0.27, -0.33, -0.08, 0.55, 1.63, 3.22, 5.38, 8.18\r\n8.5, -0.78, -1.34, -1.6, -1.48, -0.93, 0.12, 1.73, 3.96\r\n9, -1.23, -2.23, -2.93, -3.27, -3.17, -2.59, -1.46, 0.26\r\n9.5, -1.62, -3.02, -4.11, -4.84, -5.15, -4.98, -4.28, -3\r\n10, -1.97, -3.71, -5.16, -6.24, -6.91, -7.11, -6.79, -5.9\r\n10.5, -2.28, -4.34, -6.1, -7.49, -8.48, -9.01, -9.04, -8.5\r\n11, -2.56, -4.9, -6.94, -8.62, -9.9, -10.73, -11.05, -10.83\r\n11.5, -2.82, -5.41, -7.7, -9.64, -11.18, -12.28, -12.88, -12.94\r\n12, -3.05, -5.87, -8.39, -10.57, -12.34, -13.68, -14.53, -14.86\r\n12.5, -3.26, -6.29, -9.03, -11.41, -13.41, -14.96, -16.04, -16.6\r\n13, -3.45, -6.68, -9.6, -12.19, -14.38, -16.14, -17.43, -18.2\r\n13.5, -3.63, -7.03, -10.14, -12.9, -15.27, -17.22, -18.7, -19.67\r\n14, -3.79, -7.36, -10.63, -13.55, -16.09, -18.21, -19.87, -21.02\r\n14.5, -3.95, -7.66, -11.08, -14.16, -16.86, -19.13, -20.95, -22.27\r\n15, -4.09, -7.94, -11.5, -14.72, -17.56, -19.98, -21.95, -23.43\r\n15.5, -4.22, -8.2, -11.89, -15.25, -18.22, -20.78, -22.89, -24.51\r\n16, -4.34, -8.45, -12.26, -15.73, -18.83, -21.52, -23.76, -25.51\r\n16.5, -4.45, -8.67, -12.6, -16.19, -19.4, -22.21, -24.57, -26.45\r\n17, -4.56, -8.89, -12.92, -16.62, -19.94, -22.85, -25.33, -27.33\r\n17.5, -4.66, -9.09, -13.22, -17.02, -20.44, -23.46, -26.04, -28.16\r\n18, -4.75, -9.27, -13.5, -17.39, -20.91, -24.03, -26.71, -28.93\r\n18.5, -4.84, -9.45, -13.77, -17.75, -21.36, -24.57, -27.35, -29.66\r\n19, -4.93, -9.62, -14.02, -18.08, -21.78, -25.08, -27.94, -30.35\r\n19.5, -5.01, -9.78, -14.26, -18.4, -22.18, -25.56, -28.51, -31\r\n20, -5.08, -9.93, -14.48, -18.7, -22.55, -26.01, -29.04, -31.61\r\n20.5, -5.15, -10.07, -14.69, -18.98, -22.91, -26.44, -29.54, -32.2\r\n21, -5.22, -10.2, -14.89, -19.25, -23.25, -26.85, -30.02, -32.75\r\n21.5, -5.28, -10.33, -15.09, -19.51, -23.57, -27.23, -30.48, -33.27\r\n22, -5.34, -10.45, -15.27, -19.75, -23.87, -27.6, -30.91, -33.77\r\n22.5, -5.4, -10.57, -15.44, -19.98, -24.16, -27.95, -31.32, -34.25\r\n23, -5.46, -10.68, -15.61, -20.21, -24.44, -28.29, -31.72, -34.7\r\n23.5, -5.51, -10.79, -15.77, -20.42, -24.71, -28.61, -32.09, -35.14\r\n24, -5.56, -10.89, -15.92, -20.62, -24.96, -28.91, -32.45, -35.55\r\n24.5, -5.61, -10.98, -16.06, -20.81, -25.2, -29.21, -32.8, -35.95\r\n25, -5.66, -11.08, -16.2, -21, -25.44, -29.49, -33.13, -36.33\r\n26, -5.66, -11.08, -16.2, -21, -25.44, -29.49, -33.13, -36.33\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Performance Tires } 205/45 R17\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : TireMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:31\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz104.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`205/45 R17` Performance Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy104.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`205/45 R17`Performance Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1348.41, 2696.83, 4045.24, 5393.66, 6742.07, 8090.49, 9438.9, 10787.32\r\n0.5, 235.28, 461.71, 677.96, 883.33, 1077.34, 1259.69, 1430.17, 1588.65\r\n1, 459.85, 902.69, 1325.96, 1728.27, 2108.7, 2466.63, 2801.63, 3113.42\r\n1.5, 664.55, 1305.19, 1918.27, 2501.78, 3054.38, 3575.14, 4063.37, 4518.63\r\n2, 843.04, 1656.81, 2436.8, 3180.46, 3886.07, 4552.37, 5178.44, 5763.61\r\n2.5, 992.35, 1951.66, 2872.76, 3752.69, 4589.37, 5381.28, 6127.24, 6826.37\r\n3, 1112.66, 2189.91, 3226.13, 4218.04, 5163.29, 6060.13, 6907.13, 7703.2\r\n3.5, 1206.45, 2376.23, 3503.43, 4584.55, 5617.06, 6598.99, 7528.73, 8405\r\n4, 1277.48, 2517.8, 3714.91, 4865.19, 5965.95, 7015.09, 8010.85, 8951.79\r\n4.5, 1329.85, 2622.56, 3872.05, 5074.6, 6227.48, 7328.45, 8375.68, 9367.59\r\n5, 1367.43, 2698.06, 3985.81, 5226.96, 6418.7, 7558.77, 8645.25, 9676.49\r\n5.5, 1393.59, 2750.87, 4065.83, 5334.73, 6554.78, 7723.66, 8839.44, 9900.39\r\n6, 1411.08, 2786.41, 4120.06, 5408.32, 6648.39, 7837.97, 8975.08, 10058\r\n6.5, 1422.06, 2808.96, 4154.83, 5456.01, 6709.73, 7913.68, 9065.89, 10164.61\r\n7, 1428.23, 2821.85, 4175.08, 5484.32, 6746.8, 7960.25, 9122.7, 10232.41\r\n7.5, 1430.84, 2827.6, 4184.57, 5498.2, 6765.77, 7985.01, 9153.97, 10270.91\r\n8, 1430.86, 2828.12, 4186.16, 5501.46, 6771.33, 7993.55, 9166.16, 10287.45\r\n8.5, 1429.01, 2824.85, 4181.99, 5496.94, 6767.06, 7990.12, 9164.22, 10287.65\r\n9, 1425.81, 2818.87, 4173.67, 5486.8, 6755.63, 7977.96, 9151.92, 10275.8\r\n9.5, 1421.68, 2810.96, 4162.41, 5472.64, 6739.06, 7959.5, 9132.08, 10255.15\r\n10, 1416.91, 2801.73, 4149.1, 5455.67, 6718.87, 7936.55, 9106.87, 10228.17\r\n10.5, 1411.71, 2791.62, 4134.42, 5436.8, 6696.2, 7910.51, 9077.89, 10196.72\r\n11, 1406.24, 2780.96, 4118.87, 5416.69, 6671.9, 7882.4, 9046.38, 10162.21\r\n11.5, 1400.64, 2769.99, 4102.81, 5395.85, 6646.61, 7853, 9013.24, 10125.72\r\n12, 1394.99, 2758.89, 4086.53, 5374.66, 6620.8, 7822.9, 8979.18, 10088.05\r\n12.5, 1389.34, 2747.8, 4070.22, 5353.39, 6594.84, 7792.53, 8944.71, 10049.79\r\n13, 1383.76, 2736.81, 4054.04, 5332.23, 6568.97, 7762.21, 8910.21, 10011.41\r\n13.5, 1378.27, 2725.99, 4038.08, 5311.35, 6543.39, 7732.17, 8875.97, 9973.24\r\n14, 1372.89, 2715.4, 4022.43, 5290.85, 6518.23, 7702.59, 8842.2, 9935.52\r\n14.5, 1367.65, 2705.05, 4007.14, 5270.79, 6493.6, 7673.59, 8809.05, 9898.44\r\n15, 1362.55, 2694.98, 3992.24, 5251.23, 6469.56, 7645.25, 8776.61, 9862.12\r\n15.5, 1357.6, 2685.19, 3977.76, 5232.2, 6446.15, 7617.64, 8744.97, 9826.65\r\n16, 1352.8, 2675.7, 3963.7, 5213.72, 6423.39, 7590.77, 8714.17, 9792.09\r\n16.5, 1348.16, 2666.5, 3950.08, 5195.79, 6401.31, 7564.68, 8684.23, 9758.47\r\n17, 1343.66, 2657.6, 3936.88, 5178.42, 6379.9, 7539.37, 8655.16, 9725.81\r\n17.5, 1339.31, 2648.99, 3924.1, 5161.6, 6359.15, 7514.83, 8626.97, 9694.11\r\n18, 1335.1, 2640.66, 3911.74, 5145.32, 6339.06, 7491.05, 8599.64, 9663.36\r\n18.5, 1331.04, 2632.6, 3899.79, 5129.57, 6319.61, 7468.03, 8573.16, 9633.55\r\n19, 1327.11, 2624.81, 3888.23, 5114.32, 6300.79, 7445.73, 8547.51, 9604.66\r\n19.5, 1323.31, 2617.28, 3877.04, 5099.57, 6282.57, 7424.15, 8522.66, 9576.67\r\n20, 1319.64, 2610, 3866.23, 5085.31, 6264.94, 7403.25, 8498.6, 9549.55\r\n20.5, 1316.09, 2602.96, 3855.76, 5071.5, 6247.88, 7383.02, 8475.29, 9523.28\r\n21, 1312.65, 2596.14, 3845.64, 5058.14, 6231.36, 7363.42, 8452.72, 9497.82\r\n21.5, 1309.33, 2589.55, 3835.84, 5045.2, 6215.36, 7344.44, 8430.85, 9473.15\r\n22, 1306.11, 2583.17, 3826.35, 5032.67, 6199.86, 7326.06, 8409.65, 9449.23\r\n22.5, 1303, 2576.99, 3817.16, 5020.53, 6184.85, 7308.24, 8389.11, 9426.04\r\n23, 1299.98, 2571, 3808.26, 5008.78, 6170.3, 7290.97, 8369.19, 9403.55\r\n23.5, 1297.06, 2565.2, 3799.63, 4997.38, 6156.19, 7274.22, 8349.87, 9381.73\r\n24, 1294.23, 2559.58, 3791.26, 4986.32, 6142.51, 7257.97, 8331.12, 9360.56\r\n24.5, 1291.48, 2554.12, 3783.15, 4975.6, 6129.23, 7242.2, 8312.93, 9340.01\r\n25, 1288.81, 2548.83, 3775.27, 4965.19, 6116.34, 7226.89, 8295.26, 9320.05\r\n26, 1288.81, 2548.83, 3775.27, 4965.19, 6116.34, 7226.89, 8295.26, 9320.05\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Performance Tires } 205/45 R17\r\n#Library : Tire: Lateral Force\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : TireFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy104.par\r\n\r\n#BlueLink1 Tire: Lateral Force`205/45 R17` Performance Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx104.par`08-02-2011`16:42:27\r\n#FullDataName Tire: Longitudinal Force`205/45 R17`Performance Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1348.41, 2696.83, 4045.24, 5393.66, 6742.07, 8090.49, 9438.9, 10787.32\r\n0.02, 704.77, 1395.6, 2070.06, 2726.61, 3363.99, 3981.14, 4577.1, 5151\r\n0.04, 1097.08, 2170.78, 3217.1, 4233.54, 5218.12, 6169.21, 7085.36, 7965.25\r\n0.06, 1274.84, 2521.28, 3734.55, 4911.69, 6050.38, 7148.75, 8205.15, 9218.1\r\n0.08, 1357.64, 2684.31, 3974.85, 5226.07, 6435.52, 7601.19, 8721.37, 9794.51\r\n0.1, 1398.39, 2764.43, 4092.76, 5380.06, 6623.83, 7822.01, 8972.83, 10074.75\r\n0.12, 1418.63, 2804.15, 4151.09, 5456.06, 6716.52, 7930.39, 9095.89, 10211.48\r\n0.14, 1427.94, 2822.34, 4177.66, 5490.49, 6758.29, 7978.95, 9150.69, 10271.97\r\n0.16, 1431.01, 2828.24, 4186.14, 5501.28, 6771.1, 7993.51, 9166.72, 10289.19\r\n0.18, 1430.36, 2826.84, 4183.86, 5498.01, 6766.72, 7987.9, 9159.78, 10280.81\r\n0.2, 1427.44, 2820.98, 4175.04, 5486.2, 6751.9, 7970.06, 9138.92, 10256.94\r\n0.22, 1423.14, 2812.4, 4162.21, 5469.17, 6730.72, 7944.79, 9109.62, 10223.69\r\n0.24, 1418, 2802.18, 4146.98, 5449.02, 6705.74, 7915.08, 9075.3, 10184.87\r\n0.26, 1412.37, 2791.01, 4130.38, 5427.09, 6678.6, 7882.87, 9038.16, 10142.94\r\n0.28, 1406.5, 2779.36, 4113.07, 5404.25, 6650.38, 7849.42, 8999.63, 10099.51\r\n0.3, 1400.53, 2767.53, 4095.51, 5381.1, 6621.8, 7815.57, 8960.68, 10055.64\r\n0.32, 1394.57, 2755.73, 4078, 5358.03, 6593.33, 7781.86, 8921.92, 10012.02\r\n0.34, 1388.69, 2744.08, 4060.73, 5335.29, 6565.28, 7748.68, 8883.79, 9969.12\r\n0.36, 1382.93, 2732.69, 4043.83, 5313.05, 6537.86, 7716.26, 8846.54, 9927.24\r\n0.38, 1377.32, 2721.59, 4027.4, 5291.42, 6511.21, 7684.75, 8810.35, 9886.56\r\n0.4, 1371.89, 2710.84, 4011.47, 5270.47, 6485.39, 7654.23, 8775.32, 9847.2\r\n0.42, 1366.63, 2700.45, 3996.07, 5250.22, 6460.45, 7624.77, 8741.5, 9809.2\r\n0.44, 1361.56, 2690.43, 3981.23, 5230.7, 6436.41, 7596.36, 8708.91, 9772.6\r\n0.46, 1356.68, 2680.77, 3966.93, 5211.9, 6413.26, 7569.02, 8677.55, 9737.38\r\n0.48, 1351.98, 2671.47, 3953.17, 5193.81, 6390.99, 7542.73, 8647.39, 9703.52\r\n0.5, 1347.45, 2662.53, 3939.93, 5176.42, 6369.58, 7517.46, 8618.4, 9670.98\r\n0.52, 1343.1, 2653.94, 3927.21, 5159.7, 6349, 7493.17, 8590.55, 9639.72\r\n0.54, 1338.92, 2645.68, 3914.98, 5143.64, 6329.23, 7469.83, 8563.79, 9609.69\r\n0.56, 1334.9, 2637.73, 3903.23, 5128.2, 6310.23, 7447.41, 8538.08, 9580.85\r\n0.58, 1331.04, 2630.1, 3891.93, 5113.35, 6291.97, 7425.86, 8513.38, 9553.13\r\n0.6, 1327.32, 2622.75, 3881.07, 5099.08, 6274.41, 7405.14, 8489.64, 9526.5\r\n0.62, 1323.75, 2615.69, 3870.62, 5085.36, 6257.53, 7385.22, 8466.81, 9500.89\r\n0.64, 1320.31, 2608.89, 3860.56, 5072.15, 6241.29, 7366.06, 8444.86, 9476.27\r\n0.66, 1316.99, 2602.35, 3850.89, 5059.45, 6225.66, 7347.63, 8423.73, 9452.58\r\n0.68, 1313.81, 2596.05, 3841.57, 5047.21, 6210.62, 7329.88, 8403.4, 9429.78\r\n0.7, 1310.73, 2589.98, 3832.6, 5035.43, 6196.13, 7312.79, 8383.82, 9407.82\r\n0.72, 1307.77, 2584.14, 3823.95, 5024.07, 6182.16, 7296.32, 8364.95, 9386.67\r\n0.74, 1304.92, 2578.5, 3815.61, 5013.12, 6168.7, 7280.45, 8346.77, 9366.28\r\n0.76, 1302.16, 2573.06, 3807.57, 5002.57, 6155.72, 7265.14, 8329.23, 9346.62\r\n0.78, 1299.5, 2567.81, 3799.8, 4992.38, 6143.19, 7250.37, 8312.31, 9327.65\r\n0.8, 1296.94, 2562.74, 3792.31, 4982.54, 6131.1, 7236.11, 8295.98, 9309.34\r\n0.82, 1294.46, 2557.84, 3785.07, 4973.03, 6119.41, 7222.33, 8280.21, 9291.66\r\n0.84, 1292.06, 2553.11, 3778.08, 4963.85, 6108.13, 7209.02, 8264.97, 9274.58\r\n0.86, 1289.74, 2548.54, 3771.31, 4954.97, 6097.21, 7196.16, 8250.23, 9258.07\r\n0.88, 1287.5, 2544.11, 3764.77, 4946.39, 6086.66, 7183.72, 8235.98, 9242.1\r\n0.9, 1285.33, 2539.83, 3758.44, 4938.08, 6076.44, 7171.68, 8222.2, 9226.65\r\n0.92, 1283.23, 2535.68, 3752.31, 4930.03, 6066.56, 7160.02, 8208.85, 9211.69\r\n0.94, 1281.2, 2531.66, 3746.37, 4922.24, 6056.98, 7148.73, 8195.93, 9197.21\r\n0.96, 1279.22, 2527.77, 3740.62, 4914.69, 6047.7, 7137.79, 8183.41, 9183.17\r\n0.98, 1277.31, 2524, 3735.04, 4907.37, 6038.71, 7127.19, 8171.27, 9169.57\r\n1, 1275.46, 2520.34, 3729.63, 4900.27, 6029.98, 7116.91, 8159.5, 9156.39\r\n1.02, 1275.46, 2520.34, 3729.63, 4900.27, 6029.98, 7116.91, 8159.5, 9156.39\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Performance Tires } 205/45 R17\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : TireFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:27\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx104.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`205/45 R17` Performance Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff104.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`205/45 R17`Performance Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n539.36575, -3.948\r\n1078.7315, -7.9302\r\n1618.09725, -11.9585\r\n2157.463, -16.0411\r\n2696.82875, -20.1848\r\n3236.1945, -24.3954\r\n3775.56025, -28.6777\r\n4314.926, -33.0365\r\n4854.29175, -37.476\r\n5393.6575, -42\r\n5933.02325, -46.6122\r\n6472.389, -51.316\r\n7011.75475, -56.1146\r\n7551.1205, -61.0112\r\n8090.48625, -66.0087\r\n8629.852, -71.1099\r\n9169.21775, -76.3176\r\n9708.5835, -81.6343\r\n10247.94925, -87.0626\r\n10787.315, -92.6048\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Performance Tires } 205/45 R17\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : CamStiff104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff104.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`205/45 R17` Performance Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Performance Tires } 205/45 R17\r\n#Library : Tire\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : Tire104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire104_note.txt\r\n550 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire104_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire104.par\r\n\r\n#BlueLink9 Tire`205/45 R17` Performance Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`205/45 R17` Performance Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp108.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Rear Comp.`CS B-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*CT_FX_L -6.3e-6\r\n*CT_FX_R -6.3e-6\r\n*CS_FY_L -8.3e-6\r\n*CS_FY_R -8.3e-6\r\n*CS_MZ_L -1.2e-4\r\n*CS_MZ_R -1.2e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L -3.2e-4\r\n*CI_FY_R -3.2e-4\r\n*CI_MZ_L -5.0e-4\r\n*CI_MZ_R -5.0e-4\r\n*C_LONG_L 3.6e-5\r\n*C_LONG_R 3.6e-5\r\n*C_LAT_L 9.4e-6\r\n*C_LAT_R 9.4e-6\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.2e-4\r\nCI_MZ_COEFFICIENT -5.0e-4\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-6\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring108.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`91 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 91\r\nFS_EXT_COEFFICIENT 91\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 91\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 91 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 91 N/mm\r\n#Category:\r\n#FileID  : Spring108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring108.par\r\n\r\n#BlueLink0 Suspension: Spring`91 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.2e-4\r\nCI_MZ_COEFFICIENT -5.0e-4\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-6\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`91 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS B-Class } B-Class, Sports Car - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : B-Class, Sports Car - Rear Comp.\r\n#Category: CS B-Class\r\n#FileID  : SuspCmp108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp108_note.txt\r\nRear spring rate chosen for a rear ride frequency of 2.4 Hz and a rear corner weight of 255 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp108_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp108.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Rear Comp.` CS B-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin108.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`B-Class, Sports Car - Rear Suspension`CS B-Class\r\niside 1\r\nL_TRACK 1485\r\nY_CL_SUSP 0\r\nM_US 60\r\n*IW_L 0.6\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.6\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.2\r\n*TOE_R 0.2\r\n*CAMBER_L -1.5\r\n*CAMBER_R -1.5\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive`5-Link Rear\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { 5-Link Rear } Rear 5-Link - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear 5-Link - No Dive\r\n#Category: 5-Link Rear\r\n#FileID  : Dive102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive102.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX102.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { 5-Link Rear } Rear 5-Link - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear 5-Link - Longitudinal Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusX102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX102.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Rear 5-Link - Camber Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.66479\r\n-60, 1.43877\r\n-50, 1.21143\r\n-40, 0.981031\r\n-30, 0.746032\r\n-20, 0.505036\r\n-10, 0.25676\r\n0, 0\r\n10, -0.266403\r\n20, -0.543604\r\n30, -0.832791\r\n40, -1.13524\r\n50, -1.45237\r\n60, -1.78583\r\n70, -2.13754\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { 5-Link Rear } Rear 5-Link - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Rear 5-Link - Camber Change\r\n#Category: 5-Link Rear\r\n#FileID  : Camber102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\nGeneric 5-Link rear Camber change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber102.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear 5-Link - Lateral Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { 5-Link Rear } Rear 5-Link - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear 5-Link - Lateral Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusLat102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\nGeneric 5-Link rear Lateral movement vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat102.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe102.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Rear 5-Link - Toe Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, -1.02057\r\n-60, -0.828098\r\n-50, -0.65623\r\n-40, -0.501756\r\n-30, -0.361641\r\n-20, -0.233037\r\n-10, -0.113294\r\n0, 0\r\n10, 0.108974\r\n20, 0.215401\r\n30, 0.320605\r\n40, 0.425353\r\n50, 0.529714\r\n60, 0.632927\r\n70, 0.733253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { 5-Link Rear } Rear 5-Link - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Rear 5-Link - Toe Change\r\n#Category: 5-Link Rear\r\n#FileID  : Toe102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\nGeneric 5-Link Rear Toe change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe102.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Left wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -1.5\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Right wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -1.5\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS B-Class } B-Class, Sports Car - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : B-Class, Sports Car - Rear Suspension\r\n#Category: CS B-Class\r\n#FileID  : IndKin108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin108_note.txt\r\nGeneric 5-Link rear suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin108_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin108.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`B-Class, Sports Car - Rear Suspension` CS B-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`205/45 R17` Performance Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`205/45 R17` Performance Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass104.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`B-Class, Sports Car Sprung Mass`CS B-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 2330\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 2860\r\nH_H 380\r\nH_CG_SU 375\r\nLX_AXLE 2330\r\nLX_CG_SU 1165\r\nM_SU 1020\r\nIXX_SU 308.6\r\nIYY_SU 1020.0\r\nIZZ_SU 1020.0\r\nIXZ_SU 0\r\nRX_SGUI 0.550\r\nRY_SGUI 1.000\r\nRZ_SGUI 1.000\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1200\r\nY_LENGTH 1750\r\n*HWC_LF 330\r\n*HWC_RF 330\r\n*HWC_LR 310\r\n*HWC_RR 310\r\nL_FRAME 2400\r\nW_FRAME 1000\r\nX_NODE 1100\r\nK_FRAME 3000\r\nC_FRAME 100\r\nX_ENG 1000\r\n\r\nH_WC 310\r\niside 2\r\nH_WC 310\r\niaxle 1\r\niside 1\r\nH_WC 330\r\niside 2\r\nH_WC 330\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS B-Class } B-Class, Sports Car Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : B-Class, Sports Car Sprung Mass\r\n#Category: CS B-Class\r\n#FileID  : SprMass104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass104.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`B-Class, Sports Car Sprung Mass` CS B-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`B-Class, Sports Car Aero`CS B-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1165\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 2330\r\nAREA_AERO 1.6\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS B-Class } B-Class, Sports Car Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : B-Class, Sports Car Aero\r\n#Category: CS B-Class\r\n#FileID  : Aero104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero104_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero104.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`B-Class, Sports Car Aero` CS B-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh104.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`B-Class, Sports Car`B-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 2390\r\nOBJ_Y_LENGTH 1700\r\nOBJ_Z_LENGTH 1175\r\n*DZ_V 50\r\n*LAT_WC 1575\r\n*LAT_WC_2 1575\r\n*HWC 350\r\n*WHEEL_RATIO 1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.7875\r\nSET_OFFSET_Z 0.3325\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.7875\r\nSET_OFFSET_Z 0.3325\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -2.39\r\nSET_OFFSET_Y 0.7875\r\nSET_OFFSET_Z 0.3325\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -2.39\r\nSET_OFFSET_Y -0.7875\r\nSET_OFFSET_Z 0.3325\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT 0.05\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup110.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Shape Assembly`B-Class, Convertible`CS B-Class\r\n*COLOR .36 .117 .117\r\n*SCALE_X 1\r\n*SCALE_Y 0.95\r\n*SCALE_Z 1\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.270\r\n*X_REF_LENGTH 2390\r\n*Y_REF_LENGTH 1700\r\n*Z_REF_LENGTH 1175\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 1\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL145.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Body`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0.8\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Body\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL145\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL145.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Conv.: Body` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nENTER_PARSFILE Animator\\STL\\AniSTL146.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Details`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_details.obj\r\n#ENDMYellow\r\n\r\n*SPECULAR 1\r\n*TRANSPARENCY 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 1\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Details\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL146\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL146.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Conv.: Details` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nENTER_PARSFILE Animator\\STL\\AniSTL356.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Windows`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_Window.obj\r\n#ENDMYellow\r\n\r\n*SPECULAR 1\r\n*TRANSPARENCY 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 1\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Windows\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL356\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL356.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Conv.: Windows` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nENTER_PARSFILE Animator\\STL\\AniSTL147.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Driver`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\driver.obj\r\n#ENDMYellow\r\n\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Driver\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL147\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL147.par\r\n\r\n#BlueLink13 Animator: Shape File Link`Conv.: Driver` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nx_ref_length 2390\r\ny_ref_length 1700\r\nz_ref_length 1175\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS B-Class } B-Class, Convertible\r\n#Library : Animator: Shape Assembly\r\n#DataSet : B-Class, Convertible\r\n#Category: CS B-Class\r\n#FileID  : StlGroup110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup110.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`B-Class, Convertible` CS B-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL148.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Brake Lights`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 0.95\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.01\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.270\r\nX_REF_LENGTH 2390\r\nY_REF_LENGTH 1700\r\nZ_REF_LENGTH 1175\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Brake Lights\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Brake Lights\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL148\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL148.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Conv.: Brake Lights` CS Sports Car` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { B-Class Vehicles } B-Class, Sports Car\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : B-Class, Sports Car\r\n#Category: B-Class Vehicles\r\n#FileID  : AniVeh104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh104_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh104_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh104.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`B-Class, Sports Car` B-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 1\r\nPMAX_SC 125\r\nENTER_PARSFILE Powertrain\\Rwd\\RWD101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Rear-Wheel Drive`125 kW, 6-spd., 4.1 Ratio`\r\n\r\nOPT_PT 2\r\n\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine109.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`125 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.16\r\n\r\n#CheckBox0 0\r\nOPT_THROTTLE_DELAY 0\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 20.63, 63.42, 84.48, 86.19, 87.17, 87.65, 87.82, 87.86, 87.88, 87.86\r\n633, 24.75, 77.39, 116.38, 124.29, 125.56, 126.07, 126.25, 126.27, 126.27, 126.27\r\n750, 0, 72.82, 123.35, 134.46, 137.46, 138.54, 138.94, 138.98, 138.97, 138.96\r\n1107, -8.25, 58.85, 144.66, 165.55, 173.84, 176.68, 177.74, 177.84, 177.81, 177.74\r\n1463, -12.38, 39.26, 139.43, 173.25, 184.29, 189.29, 191.74, 192.31, 192.68, 196.35\r\n1820, -14.03, 21.45, 123.75, 176.33, 194.74, 201.9, 205.74, 206.78, 207.55, 212.85\r\n2177, -16.81, 8.25, 98.04, 169.73, 198, 214.5, 216.98, 219.45, 221.93, 227.4\r\n2533, -21.1, -5.34, 67.75, 151.73, 199.65, 222.5, 228.53, 232.7, 235.13, 239.25\r\n2890, -25.11, -12.63, 47.01, 127.92, 194.27, 224.92, 237.69, 240.9, 245.85, 249.98\r\n3247, -28.65, -18.38, 31.39, 102.07, 186.21, 222.75, 239.25, 245.85, 250.8, 255.75\r\n3603, -32.14, -23.42, 19.57, 80.44, 167.53, 216.15, 240.08, 247.5, 253.28, 258.23\r\n3960, -35.64, -28.09, 9.84, 63.68, 145.29, 207.19, 237.6, 246.68, 252.45, 255.75\r\n4317, -39.34, -32.81, 0.23, 47.88, 125.2, 197.75, 233.48, 241.73, 247.5, 252.4\r\n4673, -43.19, -37.51, -8.31, 34.33, 104.22, 183.59, 226.88, 235.13, 243.38, 247.5\r\n5030, -47.28, -42.14, -15.9, 22.49, 85.54, 165.8, 218.63, 226.88, 235.13, 239.25\r\n5387, -51.39, -46.87, -22.94, 12.04, 69.6, 147.15, 205.7, 213.68, 224.7, 227.07\r\n5743, -55.99, -51.8, -29.76, 2.35, 55.16, 127.73, 184.51, 197.1, 203.01, 205.34\r\n6100, -61.01, -57.01, -36.57, -6.8, 41.98, 108.88, 161.55, 173.27, 178.77, 180.88\r\n6500, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83\r\n6700, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 125 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 125 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine109.par\r\n\r\n#BlueLink0 Powertrain: Engine`125 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 125 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.006425\r\n0.1, 0.006425\r\n0.2, 0.006425\r\n0.3, 0.006425\r\n0.4, 0.006424\r\n0.5, 0.006419\r\n0.6, 0.006386\r\n0.7, 0.006243\r\n0.8, 0.005735\r\n0.9, 0.004185\r\n0.95, 0.002578\r\n0.99, 0.000614\r\n1.01, -0.000614\r\n1.05, -0.002578\r\n1.1, -0.004185\r\n1.2, -0.005735\r\n1.3, -0.006243\r\n1.4, -0.006386\r\n1.5, -0.006419\r\n1.6, -0.006424\r\n1.7, -0.006425\r\n1.8, -0.006425\r\n1.9, -0.006425\r\n2, -0.006425\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 125 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 125 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC101.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 125 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission`\r\n#RingCtrl0 6\r\nNGEARS 6\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.168\r\nR_GEAR_TR(1) 3.538\r\nR_GEAR_TR(2) 2.06\r\nR_GEAR_TR(3) 1.404\r\nR_GEAR_TR(4) 1.00\r\nR_GEAR_TR(5) 0.713\r\nR_GEAR_TR(6) 0.582\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nT_SHIFT 0.25\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift101.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 1-2 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 874\r\n0.2, 874\r\n0.8, 1653\r\n1, 1653\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 699\r\n0.4, 699\r\n0.8, 1240\r\n1, 1240\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 1-2 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift101.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`6-speed, 1-2 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift102.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 2-3 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1282\r\n0.2, 1282\r\n0.8, 2840\r\n1, 2840\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1026\r\n0.4, 1026\r\n0.8, 2130\r\n1, 2130\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 2-3 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift102.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`6-speed, 2-3 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift103.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 3-4 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 4167\r\n1, 4167\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 3125\r\n1, 3125\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 3-4 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift103.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`6-speed, 3-4 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift104.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 4-5 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2525\r\n0.2, 2525\r\n0.8, 5850\r\n1, 5850\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2020\r\n0.4, 2020\r\n0.8, 4388\r\n1, 4388\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 4-5 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift104.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`6-speed, 4-5 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift105.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 5-6 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 3093\r\n0.2, 3093\r\n0.8, 8205\r\n1, 8205\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2474\r\n0.4, 2474\r\n0.8, 6154\r\n1, 6154\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 5-6 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift105.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`6-speed, 5-6 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 6-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 6-Speed Transmission\r\n#Category:\r\n#FileID  : Trans101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans101.par\r\n\r\n#BlueLink9 Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Viscous - Gear Ratio 4.1`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_RD 4.1\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Viscous - Gear Ratio 4.1\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Viscous - Gear Ratio 4.1\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff102.par\r\n\r\n#BlueLink3 Powertrain: Rear Differential`Viscous - Gear Ratio 4.1` CS Rear Differentials` , Differential\r\n\r\n\r\nIDIFF 2\r\n#BlueLink5 Powertrain: Rear Differential`Viscous - Gear Ratio 4.1` CS Rear Differentials` , Differential\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear-Wheel Drive; 125 kW, 6-spd., 4.1 Ratio\r\n#Library : Powertrain: Rear-Wheel Drive\r\n#DataSet : 125 kW, 6-spd., 4.1 Ratio\r\n#Category:\r\n#FileID  : RWD101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode RWD\r\n\r\nENTRY_NOTEFILE Powertrain\\Rwd\\RWD101_note.txt\r\nGeneric 125 kW powertrain with an automatic transmission.  The torque converter data has been tuned to work with the 125 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\Rwd\\RWD101_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\Rwd\\RWD101.par\r\n\r\n#BlueLink4 Powertrain: Rear-Wheel Drive`125 kW, 6-spd., 4.1 Ratio` ` , Rear-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W104.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`B-Class, Sports Car w/ ABS`CS B-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.2\r\nON_F_SGUI 0.09\r\nON_R_SGUI 0.1\r\nV_F_SGUI 2\r\nV_R_SGUI 2\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq102.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`200 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 200\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 200\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 200 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 200 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq102.par\r\n\r\n#BlueLink0 Brakes: Torque`200 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.09\r\nABS_VMIN 2\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`200 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq108.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`100 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 100\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 100\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 100 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 100 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq108.par\r\n\r\n#BlueLink2 Brakes: Torque`100 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.2\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 2\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`100 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS B-Class } B-Class, Sports Car w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : B-Class, Sports Car w/ ABS\r\n#Category: CS B-Class\r\n#FileID  : Brk4W104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W104.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`B-Class, Sports Car w/ ABS` CS B-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2104.par`08-02-2011`16:42:43\r\n#FullDataName Steering`B-Class, Sports Car: Power, R&P`CS B-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.0001\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 39.5\r\n*L2_LKPO 0\r\n*R1_LKPO 39.5\r\n*R2_LKPO 0\r\n*L1_AKPI 8.0\r\n*L2_AKPI 0\r\n*R1_AKPI 8.0\r\n*R2_AKPI 0\r\n*L1_ACAST 3.5\r\n*L2_ACAST 0\r\n*R1_ACAST 3.5\r\n*R2_ACAST 0\r\n*L1_XKPO -1.0\r\n*L2_XKPO 0\r\n*R1_XKPO -1.0\r\n*R2_XKPO 0\r\n*CF_F 40\r\n*D_RACK_F 4\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.0001\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niside 2\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 40/360\r\nD_RACK 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx116.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`B-Class, Sports Car Wheel Kinematics`CS B-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-60, -48.84\r\n-57.6, -46.24\r\n-55.2, -43.71\r\n-52.8, -41.25\r\n-50.4, -38.86\r\n-48, -36.52\r\n-45.6, -34.25\r\n-43.2, -32.04\r\n-40.8, -29.88\r\n-38.4, -27.78\r\n-36, -25.73\r\n-33.6, -23.74\r\n-31.2, -21.78\r\n-28.8, -19.88\r\n-26.4, -18.02\r\n-24, -16.2\r\n-21.6, -14.43\r\n-19.2, -12.69\r\n-16.8, -10.99\r\n-14.4, -9.33\r\n-12, -7.7\r\n-9.6, -6.1\r\n-7.2, -4.53\r\n-4.8, -3\r\n-2.4, -1.49\r\n0, 0\r\n2.4, 1.46\r\n4.8, 2.9\r\n7.2, 4.32\r\n9.6, 5.72\r\n12, 7.1\r\n14.4, 8.46\r\n16.8, 9.81\r\n19.2, 11.15\r\n21.6, 12.47\r\n24, 13.78\r\n26.4, 15.09\r\n28.8, 16.39\r\n31.2, 17.68\r\n33.6, 18.97\r\n36, 20.26\r\n38.4, 21.54\r\n40.8, 22.83\r\n43.2, 24.12\r\n45.6, 25.42\r\n48, 26.73\r\n50.4, 28.05\r\n52.8, 29.39\r\n55.2, 30.74\r\n57.6, 32.12\r\n60, 33.53\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-60, -33.53\r\n-57.6, -32.12\r\n-55.2, -30.74\r\n-52.8, -29.39\r\n-50.4, -28.05\r\n-48, -26.73\r\n-45.6, -25.42\r\n-43.2, -24.12\r\n-40.8, -22.83\r\n-38.4, -21.54\r\n-36, -20.26\r\n-33.6, -18.97\r\n-31.2, -17.68\r\n-28.8, -16.39\r\n-26.4, -15.09\r\n-24, -13.78\r\n-21.6, -12.47\r\n-19.2, -11.15\r\n-16.8, -9.81\r\n-14.4, -8.46\r\n-12, -7.1\r\n-9.6, -5.72\r\n-7.2, -4.32\r\n-4.8, -2.9\r\n-2.4, -1.46\r\n0, 0\r\n2.4, 1.49\r\n4.8, 3\r\n7.2, 4.53\r\n9.6, 6.1\r\n12, 7.7\r\n14.4, 9.33\r\n16.8, 10.99\r\n19.2, 12.69\r\n21.6, 14.43\r\n24, 16.2\r\n26.4, 18.02\r\n28.8, 19.88\r\n31.2, 21.78\r\n33.6, 23.74\r\n36, 25.73\r\n38.4, 27.78\r\n40.8, 29.88\r\n43.2, 32.04\r\n45.6, 34.25\r\n48, 36.52\r\n50.4, 38.86\r\n52.8, 41.25\r\n55.2, 43.71\r\n57.6, 46.24\r\n60, 48.84\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS B-Class } B-Class, Sports Car Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : B-Class, Sports Car Wheel Kinematics\r\n#Category: CS B-Class\r\n#FileID  : RkKinAx116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx116.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`B-Class, Sports Car Wheel Kinematics` CS B-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive Low Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 1250\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -1250, -1250, -1250, -1250, -1250, -1250\r\n-15, -1250, -1250, -1250, -1250, -1250, -1250\r\n-14.5, -1250, -1250, -1250, -1250, -1250, -1250\r\n-14, -1250, -1250, -1250, -1250, -1250, -1250\r\n-13.5, -1250, -1250, -1250, -1250, -1250, -1250\r\n-13, -1250, -1250, -1250, -1250, -1250, -1250\r\n-12.5, -1250, -1250, -1250, -1250, -1250, -1250\r\n-12, -1250, -1250, -1250, -1250, -1250, -1250\r\n-11.5, -1250, -1250, -1250, -1250, -1133.4, -1070.66\r\n-11, -1250, -1210, -1213.97, -1140.425, -868.065, -750.255\r\n-10.5, -1250, -1102.5, -1031.56, -907.965, -656.645, -517.11\r\n-10, -1250, -1000, -869.625, -714.895, -490, -350\r\n-9.5, -1250, -902.5, -726.715, -556.015, -360.195, -232.195\r\n-9, -1250, -810, -601.425, -426.61, -260.405, -150.665\r\n-8.5, -1250, -722.5, -492.38, -322.4, -184.805, -95.37\r\n-8, -1250, -640, -398.245, -239.545, -128.45, -58.72\r\n-7.5, -1250, -562.5, -317.72, -174.6, -87.21, -35.04\r\n-7, -1250, -490, -249.56, -124.515, -57.65, -20.175\r\n-6.5, -1250, -422.5, -192.545, -86.6, -36.955, -11.155\r\n-6, -1250, -360, -145.5, -58.505, -22.86, -5.88\r\n-5.5, -1250, -302.5, -107.3, -38.195, -13.565, -2.93\r\n-5, -1250, -250, -76.865, -23.945, -7.655, -1.365\r\n-4.5, -1139.065, -202.5, -53.16, -14.29, -4.07, -0.59\r\n-4, -800, -160, -35.2, -8.025, -2.005, -0.23\r\n-3.5, -535.94, -122.5, -22.06, -4.17, -0.9, -0.08\r\n-3, -337.5, -90, -12.86, -1.96, -0.355, -0.025\r\n-2.5, -195.315, -62.5, -6.795, -0.8, -0.12, -0.005\r\n-2, -100, -40, -3.11, -0.27, -0.03, 0\r\n-1.5, -42.19, -22.5, -1.135, -0.065, -0.005, 0\r\n-1, -12.5, -10, -0.275, -0.01, 0, 0\r\n-0.5, -1.565, -2.5, -0.025, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 1.565, 2.5, 0.025, 0, 0, 0\r\n1, 12.5, 10, 0.275, 0.01, 0, 0\r\n1.5, 42.19, 22.5, 1.135, 0.065, 0.005, 0\r\n2, 100, 40, 3.11, 0.27, 0.03, 0\r\n2.5, 195.315, 62.5, 6.795, 0.8, 0.12, 0.005\r\n3, 337.5, 90, 12.86, 1.96, 0.355, 0.025\r\n3.5, 535.94, 122.5, 22.06, 4.17, 0.9, 0.08\r\n4, 800, 160, 35.2, 8.025, 2.005, 0.23\r\n4.5, 1139.065, 202.5, 53.16, 14.29, 4.07, 0.59\r\n5, 1250, 250, 76.865, 23.945, 7.655, 1.365\r\n5.5, 1250, 302.5, 107.3, 38.195, 13.565, 2.93\r\n6, 1250, 360, 145.5, 58.505, 22.86, 5.88\r\n6.5, 1250, 422.5, 192.545, 86.6, 36.955, 11.155\r\n7, 1250, 490, 249.56, 124.515, 57.65, 20.175\r\n7.5, 1250, 562.5, 317.72, 174.6, 87.21, 35.04\r\n8, 1250, 640, 398.245, 239.545, 128.45, 58.72\r\n8.5, 1250, 722.5, 492.38, 322.4, 184.805, 95.37\r\n9, 1250, 810, 601.425, 426.61, 260.405, 150.665\r\n9.5, 1250, 902.5, 726.715, 556.015, 360.195, 232.195\r\n10, 1250, 1000, 869.625, 714.895, 490, 350\r\n10.5, 1250, 1102.5, 1031.56, 907.965, 656.645, 517.11\r\n11, 1250, 1210, 1213.97, 1140.425, 868.065, 750.255\r\n11.5, 1250, 1250, 1250, 1250, 1133.4, 1070.66\r\n12, 1250, 1250, 1250, 1250, 1250, 1250\r\n12.5, 1250, 1250, 1250, 1250, 1250, 1250\r\n13, 1250, 1250, 1250, 1250, 1250, 1250\r\n13.5, 1250, 1250, 1250, 1250, 1250, 1250\r\n14, 1250, 1250, 1250, 1250, 1250, 1250\r\n14.5, 1250, 1250, 1250, 1250, 1250, 1250\r\n15, 1250, 1250, 1250, 1250, 1250, 1250\r\n16, 1250, 1250, 1250, 1250, 1250, 1250\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive Low Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive Low Boost Curve\r\n#Category:\r\n#FileID  : FBoost101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost101.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive Low Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp103.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`B-Class, Sports Car - Steering Comp.`CS B-Class\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 7.0e-07\r\n\r\nSTEER_COMP_COEFFICIENT 7.0e-07\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; { CS B-Class } B-Class, Sports Car - Steering Comp.\r\n#Library : Steering System: Compliance\r\n#DataSet : B-Class, Sports Car - Steering Comp.\r\n#Category: CS B-Class\r\n#FileID  : StrCmp103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp103.par\r\n\r\n#BlueLink13 Steering System: Compliance`B-Class, Sports Car - Steering Comp.` CS B-Class` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS B-Class } B-Class, Sports Car: Power, R&P\r\n#Library : Steering\r\n#DataSet : B-Class, Sports Car: Power, R&P\r\n#Category: CS B-Class\r\n#FileID  : StrSys2104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2104_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 2330 mm\r\nFront Track =  1480 mm\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2104_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2104.par\r\n\r\n#BlueLink7 Steering`B-Class, Sports Car: Power, R&P` CS B-Class` , Steering system\r\n\r\n*IMAGE_FIT_MODE 1\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`B-Class, Sports Car` B-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS B-Class } B-Class, Sports Car\r\n#Library : Vehicle: Assembly\r\n#DataSet : B-Class, Sports Car\r\n#Category: CS B-Class\r\n#FileID  : Vehicle105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:23\r\n#VehCode Ind_Ind\r\n\r\nENTRY_NOTEFILE Vehicles\\Assembly\\Vehicle105_note.txt\r\nGeneric B-Class Sports Car with SLA front and 5-Link rear suspension.\r\n\r\nB-Class type vehicles include Audi TT, BMW Z4, Mercedes Benz SLK, Honda S2000, and Mazda MX-5.\r\nEXIT_NOTEFILE Vehicles\\Assembly\\Vehicle105_note.txt\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle105.par\r\n\r\n#BlueLink2 Vehicle: Assembly`B-Class, Sports Car` CS B-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc172.par`09-01-2019`07:52:03\r\n#FullDataName Procedures`chapt3_Radar Active Cruise Control: First Car`BOOK_MPC_Procedures\r\n#CheckBox3 0\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 80\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 81\r\nOPT_DIRECTION 1\r\nOpt_SC 3\r\nENTER_PARSFILE Control\\Driver\\Driver105.par`08-02-2011`16:43:30\r\n#FullDataName Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview`Constant Position\r\n#RingCtrl0 0\r\n#RingCtrl1 CONSTANT\r\nLTARG_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nAV_SW_MAX_DM 1200\r\nTLAG_DM 0\r\nA_SW_MAX_DM 720\r\n*TPREV 1.5\r\n*SCALAR 0\r\nVLOW_DRIVER 10\r\n\r\n#CheckBox0 0\r\nOPT_DRIVER_MODEL 1\r\n#CheckBox1 0\r\nCREATE_PATH_OBJ off\r\n\r\nTPREV_CONSTANT 1.5\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering by the Closed-loop Driver Model; { Constant Position } No Offset, 1.5 sec. Preview\r\n#Library : Control: Steering by the Closed-loop Driver Model\r\n#DataSet : No Offset, 1.5 sec. Preview\r\n#Category: Constant Position\r\n#FileID  : Driver105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:30\r\n#VehCode Driver path follower\r\n\r\nEXIT_PARSFILE Control\\Driver\\Driver105.par\r\n\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\nENTER_PARSFILE Control\\Speed_s\\SpdSta106.par`08-31-2019`20:05:01\r\n#FullDataName Control: Speed (Closed Loop) vs. Station`Sensor Target Vehicle Speed LEO-define`Sensor Target Vehicle\r\nOPT_SC 3\r\n#RingCtrl0 LINEAR_FLAT\r\n#RadioCtrl0 0\r\n\r\nSPEED_KI 0.75\r\nSPEED_KP 0.5\r\nOPT_VMIN -1\r\nBK_PERF_SC 0.16\r\nFPD_PERF_SC 0.1\r\n\r\n#CheckBox0 1\r\nOPT_BK_SC 1\r\n#CheckBox1 0\r\nOPT_SC_ENGINE_BRAKING 0\r\n\r\n#DiagramOne0\r\nSPEED_STATION_TABLE LINEAR_FLAT\r\n0, 80\r\n100, 105\r\n130, 105\r\n180, 90\r\n200, 80\r\n275, 80\r\n325, 90\r\n405, 105\r\n470, 105\r\n530, 85\r\n540, 80\r\n615, 80\r\n715, 105\r\n745, 105\r\n795, 90\r\n815, 80\r\n890, 80\r\n940, 90\r\n1020, 105\r\n1040, 105\r\n1100, 80\r\n1160, 5\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Control: Speed (Closed Loop) vs. Station; { Sensor Target Vehicle } Sensor Target Vehicle Speed LEO-define\r\n#Library : Control: Speed (Closed Loop) vs. Station\r\n#DataSet : Sensor Target Vehicle Speed LEO-define\r\n#Category: Sensor Target Vehicle\r\n#FileID  : SpdSta106\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-31-2019 20:05:01\r\n#VehCode Speed vs. station\r\n\r\nEXIT_PARSFILE Control\\Speed_s\\SpdSta106.par\r\n\r\n#BlueLink32 Control: Speed (Closed Loop) vs. Station`Sensor Target Vehicle Speed LEO-define` Sensor Target Vehicle` , Speed vs. station\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.par`08-02-2011`16:43:22\r\n#FullDataName Road: 3D Surface (All Properties)`1200 m One Lane`Straight\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.005\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY101.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Straight`\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n100, 0, 100\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; Straight\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Straight\r\n#Category:\r\n#FileID  : RoadXY101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY101.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Straight` ` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp102.par`08-02-2011`16:43:14\r\n#FullDataName Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)`Roads\r\nNLANES 5\r\nOPTTHRESHOLD 1\r\n#MiscYellow0\r\n# 0.878 0.878 0.878, Road (One Lane), 0.2, 60, 1, -4, m, 4, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, 1, 4, m, 7.1, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, -7.1, m, -100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, 7.1, m, 100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, -0.969, -4, m, -7.1, m, , , -100, 1200, 5, , ,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.878 0.878 0.878\r\nMATERIAL(1) Road (One Lane)\r\nSPECULAR(1) 0.2\r\nSCALE(1) 60\r\nLTILES(1) 1\r\nLIN(1) -4\r\nLINUNITS(1) m\r\nLOUT(1) 4\r\nLOUTUNITS(1) m\r\nSSTART(1) -100\r\nSSTOP(1) 1200\r\nSINT(1) 5\r\nCOLOR(2) 0.878 0.878 0.878\r\nMATERIAL(2) Road Transition (Light)\r\nSPECULAR(2) 0.1\r\nSCALE(2) 60\r\nLTILES(2) 1\r\nLIN(2) 4\r\nLINUNITS(2) m\r\nLOUT(2) 7.1\r\nLOUTUNITS(2) m\r\nSSTART(2) -100\r\nSSTOP(2) 1200\r\nSINT(2) 5\r\nCOLOR(3) 0.878 0.878 0.878\r\nMATERIAL(3) Grass (Light)\r\nSPECULAR(3) 0.1\r\nSCALE(3) 60\r\nLTILES(3) 3.1\r\nLIN(3) -7.1\r\nLINUNITS(3) m\r\nLOUT(3) -100\r\nLOUTUNITS(3) m\r\nSSTART(3) -100\r\nSSTOP(3) 1200\r\nSINT(3) 5\r\nCOLOR(4) 0.878 0.878 0.878\r\nMATERIAL(4) Grass (Light)\r\nSPECULAR(4) 0.1\r\nSCALE(4) 60\r\nLTILES(4) 3.1\r\nLIN(4) 7.1\r\nLINUNITS(4) m\r\nLOUT(4) 100\r\nLOUTUNITS(4) m\r\nSSTART(4) -100\r\nSSTOP(4) 1200\r\nSINT(4) 5\r\nCOLOR(5) 0.878 0.878 0.878\r\nMATERIAL(5) Road Transition (Light)\r\nSPECULAR(5) 0.1\r\nSCALE(5) 60\r\nLTILES(5) -0.969\r\nLIN(5) -4\r\nLINUNITS(5) m\r\nLOUT(5) -7.1\r\nLOUTUNITS(5) m\r\nSSTART(5) -100\r\nSSTOP(5) 1200\r\nSINT(5) 5\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { Roads } 1200 m Road + 200 m Light Grass (One Lane)\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : 1200 m Road + 200 m Light Grass (One Lane)\r\n#Category: Roads\r\n#FileID  : RdShp102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:14\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp102.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)` Roads` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink6 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.ani`07-20-2011`03:07:16\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road102_1.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.2 0.2 0.2\r\n\r\nadd_obj Roads\\3D_Road\\Road102_2.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_3.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_4.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_5.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.ani\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { Straight } 1200 m One Lane\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : 1200 m One Lane\r\n#Category: Straight\r\n#FileID  : Road102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:22\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1200 m One Lane` Straight` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt3_Radar Active Cruise Control: First Car\r\n#Library : Procedures\r\n#DataSet : chapt3_Radar Active Cruise Control: First Car\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc172\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 07:52:03\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc172.par\r\n\r\n#BlueLink28 Procedures`chapt3_Radar Active Cruise Control: First Car` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\nENTER_PARSFILE Runs\\Run286.par`09-01-2019`09:12:01\r\n#FullDataName CarSim Run Control`Chapter3_MPC_ACC: Second Car (Ext. Sen.)`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex134.par`09-01-2019`08:51:54\r\n#FullDataName Models: Simulink`chapt3_Radar Active Cruise: Second Car (Ext. Sen.)`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\\LEO_MPCACC_VLV1.mdl\r\n#RunSimCat Ind_Ind`C:\\Users\\Public\\Documents\\CarSim_Data\\Extensions\\Simulink\\Multi_Vehicle\\i_i2_64.dll\r\n#RingCtrl0 1\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 1\r\n*USE_DIFF_SOLVERS 1\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\n*SIM_CODE1 Ind_Ind\r\n*SIM_PATH1 C:\\Users\\Public\\Documents\\CarSim_Data\\Extensions\\Simulink\\Multi_Vehicle\\i_i2_64.dll\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\nENTER_PARSFILE IO_Channels\\I_Channels\\I_Ch121.par`08-30-2019`23:47:24\r\n#FullDataName I/O Channels: Import`Radar ACC Import (Ext. Sen.)`MPC_BOOK_Sim_Imports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_imports_tab.txt\r\n\r\n#MiscYellow0\r\nIMP_THROTTLE_ENGINE Add 0.0 1\r\nIMP_PCON_BK Add 0.0 1\r\nIMP_AUX1 Add 0.0 0\r\n#ENDMYellow\r\n\r\n#RingCtrl0 0\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Import; { MPC_BOOK_Sim_Imports } Radar ACC Import (Ext. Sen.)\r\n#Library : I/O Channels: Import\r\n#DataSet : Radar ACC Import (Ext. Sen.)\r\n#Category: MPC_BOOK_Sim_Imports\r\n#FileID  : I_Ch121\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 23:47:24\r\n#VehCode Import Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\I_Channels\\I_Ch121.par\r\n\r\n#BlueLink0 I/O Channels: Import`Radar ACC Import (Ext. Sen.)` MPC_BOOK_Sim_Imports` , Import\r\n\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch125.par`08-31-2019`10:11:22\r\n#FullDataName I/O Channels: Export`Radar ACC Export (Ext. Sen.)`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Xo\r\nEXP_Yo\r\nEXP_Yaw\r\nEXP_Ax\r\n#MiscYellow0\r\n#Number of Selected Channels: 5\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Xo\r\n#CHN_NAME: Yo\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Ax\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } Radar ACC Export (Ext. Sen.)\r\n#Library : I/O Channels: Export\r\n#DataSet : Radar ACC Export (Ext. Sen.)\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch125\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-31-2019 10:11:22\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch125.par\r\n\r\n#BlueLink1 I/O Channels: Export`Radar ACC Export (Ext. Sen.)` MPC_BOOK_Sim_Exports` , Export\r\n\r\nENTER_PARSFILE Generic\\VS_commands\\GVS107.par`08-02-2011`16:43:24\r\n#FullDataName Generic VS Commands`Install Obsolete CarSim 8.03 Generic Variables`Install Obsolete CarSim 8.03 Generic Variables\r\n#VehCode\r\n\r\n#MiscYellow0\r\n! There were 10 outputs with the root keyword \"flag\". These were simply given a\r\n! value in a data field (yellow field), and written to the outputs.\r\n! The default value of flag 1 was set to the run ID number.\r\n! Change this if you used it for another purpose.\r\ndefine_output flag_1 = ID_RUN;\r\n!\r\n! The remaining flags had a default value of zero.\r\ndefine_output flag_2 = 0;\r\ndefine_output flag_3 = 0;\r\ndefine_output flag_4 = 0;\r\ndefine_output flag_5 = 0;\r\ndefine_output flag_6 = 0;\r\ndefine_output flag_7 = 0;\r\ndefine_output flag_8 = 0;\r\ndefine_output flag_9 = 0;\r\ndefine_output flag_10 = 0;\r\n!\r\n! There were 20 import variables with the root keyword IMP_AUX.\r\n! They could be imported from external code for plotting, use as\r\n! event triggers, etc.\r\ndefine_import imp_aux1 0;\r\ndefine_import imp_aux2 0;\r\ndefine_import imp_aux3 0;\r\ndefine_import imp_aux4 0;\r\ndefine_import imp_aux5 0;\r\ndefine_import imp_aux6 0;\r\ndefine_import imp_aux7 0;\r\ndefine_import imp_aux8 0;\r\ndefine_import imp_aux9 0;\r\ndefine_import imp_aux10 0;\r\ndefine_import imp_aux11 0;\r\ndefine_import imp_aux12 0;\r\ndefine_import imp_aux13 0;\r\ndefine_import imp_aux14 0;\r\ndefine_import imp_aux15 0;\r\ndefine_import imp_aux16 0;\r\ndefine_import imp_aux17 0;\r\ndefine_import imp_aux18 0;\r\ndefine_import imp_aux19 0;\r\ndefine_import imp_aux20 0;\r\n!\r\n! Each auxiliary import had an associated output variable, to automatically\r\n! pass the imported value to the output file.\r\ndefine_output InpAux1 = imp_aux1;\r\ndefine_output InpAux2 = imp_aux2;\r\ndefine_output InpAux3 = imp_aux3;\r\ndefine_output InpAux4 = imp_aux4;\r\ndefine_output InpAux5 = imp_aux5;\r\ndefine_output InpAux6 = imp_aux6;\r\ndefine_output InpAux7 = imp_aux7;\r\ndefine_output InpAux8 = imp_aux8;\r\ndefine_output InpAux9 = imp_aux9;\r\ndefine_output InpAux10 = imp_aux10;\r\ndefine_output InpAux11 = imp_aux11;\r\ndefine_output InpAux12 = imp_aux12;\r\ndefine_output InpAux13 = imp_aux13;\r\ndefine_output InpAux14 = imp_aux14;\r\ndefine_output InpAux15 = imp_aux15;\r\ndefine_output InpAux16 = imp_aux16;\r\ndefine_output InpAux17 = imp_aux17;\r\ndefine_output InpAux18 = imp_aux18;\r\ndefine_output InpAux19 = imp_aux19;\r\ndefine_output InpAux20 = imp_aux20;\r\n!\r\n! 12 table functions with the root keyword \"generic\" were supported.\r\n! This table definition creates 12 isntances, and automatically assigns\r\n! the index \"igeneric\" for their use.\r\ndefine_table generic 12\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Generic VS Commands; { Install Obsolete CarSim 8.03 Generic Variables } Install Obsolete CarSim 8.03 Generic Variables\r\n#Library : Generic VS Commands\r\n#DataSet : Install Obsolete CarSim 8.03 Generic Variables\r\n#Category: Install Obsolete CarSim 8.03 Generic Variables\r\n#FileID  : GVS107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:24\r\n#VehCode\r\n\r\nENTRY_NOTEFILE Generic\\VS_commands\\GVS107_note.txt\r\nSupport has been DROPPED for the CarSim output variables \"flag\", InpAux1 through InpAux 20, import variables imp_aux1 through imp_aux20, and tables generic(1) through generic(12).\r\n\r\nThrough version 8.03, CarSim included a number of built-in \"generic\" output variables, import variables, and configurable functions (tables).\r\n\r\nVS Commands now allow you to create your own outputs, imports, and configurable functions, as well as parameters and variables.\r\n\r\nThis VS Commands dataset installs all of the built-in variables supported before 8.1.\r\n\r\nTo use them, this dataset must be linked so the definitions occur BEFORE any reference to the variables, or just use this example to create them yourself in the appropriate place.\r\n\r\nRECOMMENDED PRACTICE:\r\nCreate new variables with names that are meaningful for your specific use, and don't use the old generic variables at all.\r\nEXIT_NOTEFILE Generic\\VS_commands\\GVS107_note.txt\r\n\r\nEXIT_PARSFILE Generic\\VS_commands\\GVS107.par\r\n\r\n#BlueLink2 Generic VS Commands`Install Obsolete CarSim 8.03 Generic Variables` Install Obsolete CarSim 8.03 Generic Variables` , Misc. Link\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_ACC_ExtSen_Car2.sim\r\n#ENDMYellow\r\n\r\nLIVE_SERVER_UPDATE_FREQ_MAX 60\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt3_Radar Active Cruise: Second Car (Ext. Sen.)\r\n#Library : Models: Simulink\r\n#DataSet : chapt3_Radar Active Cruise: Second Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex134\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 08:51:54\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex134.par\r\n\r\n#BlueLink12 Models: Simulink`chapt3_Radar Active Cruise: Second Car (Ext. Sen.)` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 286\r\nID_RUN 286\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle123.par`08-02-2011`16:42:24\r\n#FullDataName Vehicle: Assembly`E-Class, Sedan`CS E-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp111.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.8613\r\n*R_SPRING_R 0.8613\r\n*R_DAMPER_L 0.8681\r\n*R_DAMPER_R 0.8681\r\n*CT_FX_L -1.9e-6\r\n*CT_FX_R -1.9e-6\r\n*CS_FY_L -3.3e-5\r\n*CS_FY_R -3.3e-5\r\n*CS_MZ_L 1.4e-4\r\n*CS_MZ_R 1.4e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 5e-5\r\n*CI_FY_R 5e-5\r\n*CI_MZ_L -5.3e-5\r\n*CI_MZ_R -5.3e-5\r\n*C_LONG_L 2.0e-4\r\n*C_LONG_R 2.0e-4\r\n*C_LAT_L 2.2e-5\r\n*C_LAT_R 2.2e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.8681\r\n*R_JOUNCE_R 0.8681\r\n*R_REBOUND_L 0.8681\r\n*R_REBOUND_R 0.8681\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+80 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n78, 0\r\n79, 0\r\n80, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-50, -10000\r\n-49, 0\r\n-48, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +80 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +80 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\nENTER_PARSFILE Suspensions\\Springs\\Spring109.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`34 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 34\r\nFS_EXT_COEFFICIENT 34\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 34\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 34 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 34 N/mm\r\n#Category:\r\n#FileID  : Spring109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring109.par\r\n\r\n#BlueLink0 Suspension: Spring`34 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\n#BlueLink3 Suspension: Spring`34 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Front Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.2 Hz and a front corner weight of 446 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp111.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.2\r\n*TOE_R 0.2\r\n*CAMBER_L -0.15\r\n*CAMBER_R -0.15\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Front Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension` CS E-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire109.par`08-02-2011`16:42:33\r\n#FullDataName Tire`225/60 R18`Touring Tires\r\nX_LENGTH 364\r\nZ_LENGTH 364\r\nY_LENGTH 225\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup108.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Euro Sedan Tire`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL136.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Tire\r\n#Category: Tires\r\n#FileID  : AniSTL136\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL136.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Euro. Sedan Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL137.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL137\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL137.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Euro. Sedan Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL138.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL138.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Euro. Sedan Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Euro Sedan Tire\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Euro Sedan Tire\r\n#Category: Tires\r\n#FileID  : StlGroup108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup108.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Euro Sedan Tire` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 225\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 800 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 800; units = kg;\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 800 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 800 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet111.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 800 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 353\r\nR0 364\r\nFZ_TIRE_COEFFICIENT 278\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 764\r\nVLOW_ALPHA 5\r\nRR_C 0.0041\r\nRR_V 0.00003\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.1\r\nENTER_PARSFILE Tires\\Mz\\TireMz107.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 13.74, 26.59, 38.42, 49.18, 58.84, 67.4, 74.85, 81.2\r\n1, 27.52, 53.29, 77.08, 98.77, 118.28, 135.59, 150.69, 163.58\r\n1.5, 38.52, 75, 109.07, 140.54, 169.23, 195.05, 217.91, 237.76\r\n2, 42.77, 84.07, 123.55, 160.94, 195.99, 228.45, 258.1, 284.74\r\n2.5, 40.05, 79.6, 118.43, 156.31, 192.98, 228.18, 261.6, 292.94\r\n3, 33.77, 67.76, 101.91, 136.11, 170.21, 203.99, 237.23, 269.64\r\n3.5, 26.96, 54.52, 82.71, 111.52, 140.91, 170.77, 200.97, 231.34\r\n4, 21, 42.71, 65.25, 88.66, 112.96, 138.12, 164.12, 190.86\r\n4.5, 16.15, 33.03, 50.78, 69.47, 89.15, 109.84, 131.57, 154.32\r\n5, 12.31, 25.32, 39.18, 53.96, 69.73, 86.54, 104.45, 123.47\r\n5.5, 9.27, 19.2, 29.94, 41.55, 54.11, 67.68, 82.33, 98.09\r\n6, 6.85, 14.32, 22.54, 31.58, 41.53, 52.43, 64.36, 77.37\r\n6.5, 4.9, 10.38, 16.56, 23.52, 31.32, 40.03, 49.71, 60.42\r\n7, 3.3, 7.16, 11.68, 16.92, 22.96, 29.86, 37.67, 46.45\r\n7.5, 1.99, 4.5, 7.63, 11.46, 16.04, 21.43, 27.68, 34.85\r\n8, 0.89, 2.27, 4.25, 6.89, 10.24, 14.36, 19.3, 25.11\r\n8.5, -0.04, 0.39, 1.39, 3.03, 5.34, 8.39, 12.21, 16.87\r\n9, -0.84, -1.22, -1.05, -0.28, 1.15, 3.28, 6.16, 9.83\r\n9.5, -1.52, -2.6, -3.15, -3.12, -2.46, -1.12, 0.94, 3.76\r\n10, -2.12, -3.81, -4.98, -5.59, -5.59, -4.94, -3.59, -1.51\r\n10.5, -2.64, -4.86, -6.59, -7.76, -8.33, -8.28, -7.55, -6.12\r\n11, -3.1, -5.79, -8, -9.66, -10.75, -11.23, -11.05, -10.18\r\n11.5, -3.51, -6.62, -9.25, -11.36, -12.9, -13.84, -14.14, -13.77\r\n12, -3.88, -7.36, -10.37, -12.87, -14.81, -16.17, -16.9, -16.98\r\n12.5, -4.21, -8.02, -11.38, -14.22, -16.53, -18.26, -19.38, -19.86\r\n13, -4.5, -8.62, -12.28, -15.45, -18.08, -20.14, -21.6, -22.44\r\n13.5, -4.77, -9.16, -13.1, -16.55, -19.48, -21.84, -23.62, -24.78\r\n14, -5.02, -9.65, -13.85, -17.56, -20.75, -23.39, -25.45, -26.91\r\n14.5, -5.24, -10.1, -14.53, -18.48, -21.91, -24.81, -27.13, -28.85\r\n15, -5.44, -10.52, -15.16, -19.32, -22.98, -26.1, -28.66, -30.62\r\n15.5, -5.63, -10.9, -15.73, -20.1, -23.96, -27.29, -30.06, -32.25\r\n16, -5.8, -11.25, -16.26, -20.81, -24.86, -28.38, -31.36, -33.75\r\n16.5, -5.97, -11.57, -16.75, -21.47, -25.69, -29.4, -32.55, -35.14\r\n17, -6.11, -11.87, -17.21, -22.08, -26.47, -30.34, -33.66, -36.42\r\n17.5, -6.25, -12.15, -17.63, -22.65, -27.19, -31.21, -34.69, -37.62\r\n18, -6.38, -12.41, -18.02, -23.18, -27.86, -32.02, -35.65, -38.73\r\n18.5, -6.5, -12.65, -18.39, -23.68, -28.48, -32.78, -36.55, -39.76\r\n19, -6.62, -12.88, -18.74, -24.14, -29.07, -33.49, -37.39, -40.73\r\n19.5, -6.72, -13.1, -19.06, -24.58, -29.62, -34.16, -38.17, -41.64\r\n20, -6.82, -13.3, -19.36, -24.99, -30.13, -34.78, -38.91, -42.49\r\n20.5, -6.92, -13.49, -19.65, -25.37, -30.62, -35.37, -39.6, -43.29\r\n21, -7.01, -13.67, -19.92, -25.73, -31.08, -35.92, -40.25, -44.05\r\n21.5, -7.09, -13.83, -20.18, -26.08, -31.51, -36.45, -40.87, -44.76\r\n22, -7.17, -13.99, -20.42, -26.4, -31.92, -36.94, -41.45, -45.44\r\n22.5, -7.24, -14.15, -20.64, -26.71, -32.3, -37.41, -42.01, -46.07\r\n23, -7.32, -14.29, -20.86, -27, -32.67, -37.85, -42.53, -46.68\r\n23.5, -7.38, -14.42, -21.07, -27.27, -33.02, -38.28, -43.03, -47.25\r\n24, -7.45, -14.55, -21.26, -27.54, -33.35, -38.68, -43.5, -47.8\r\n24.5, -7.51, -14.68, -21.45, -27.79, -33.66, -39.06, -43.95, -48.31\r\n25, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\n26, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 225/60 R18\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireMz107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz107.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`225/60 R18` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy107.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 276.28, 542.17, 796.11, 1037.22, 1264.9, 1478.75, 1678.46, 1863.81\r\n1, 543.78, 1067.29, 1567.45, 2042.53, 2491.36, 2913.12, 3307.21, 3673.19\r\n1.5, 794.63, 1560.03, 2291.71, 2987.17, 3644.68, 4263.02, 4841.27, 5378.78\r\n2, 1022.61, 2008.24, 2951.2, 3848.24, 4697.14, 5496.28, 6244.46, 6940.76\r\n2.5, 1223.67, 2403.99, 3534.24, 4610.54, 5630.23, 6591.31, 7492.28, 8331.97\r\n3, 1396.06, 2743.8, 4035.64, 5267.18, 6435.36, 7537.86, 8572.88, 9539\r\n3.5, 1540.13, 3028.22, 4456.04, 5818.77, 7113, 8336.12, 9486.09, 10561.24\r\n4, 1657.77, 3260.87, 4800.56, 6271.72, 7670.65, 8994.49, 10240.97, 11408.22\r\n4.5, 1751.86, 3447.27, 5077.17, 6636.17, 8120.35, 9526.68, 10852.66, 12096.26\r\n5, 1825.68, 3593.81, 5295.1, 6923.97, 8476.36, 9949.04, 11339.39, 12645.19\r\n5.5, 1882.54, 3706.94, 5463.74, 7147.24, 8753.26, 10278.46, 11720.06, 13075.75\r\n6, 1925.52, 3792.65, 5591.84, 7317.32, 8964.81, 10530.87, 12012.67, 13407.74\r\n6.5, 1957.31, 3856.21, 5687.13, 7444.25, 9123.23, 10720.57, 12233.34, 13659.03\r\n7, 1980.19, 3902.12, 5756.22, 7536.65, 9239.02, 10859.81, 12396.02, 13845.08\r\n7.5, 1996.04, 3934.07, 5804.56, 7601.65, 9320.93, 10958.85, 12512.39, 13978.92\r\n8, 2006.38, 3955.09, 5836.61, 7645.08, 9376.12, 11026.13, 12592.07, 14071.29\r\n8.5, 2012.44, 3967.57, 5855.92, 7671.64, 9410.35, 11068.44, 12642.86, 14130.95\r\n9, 2015.19, 3973.45, 5865.35, 7685.08, 9428.24, 11091.25, 12671.03, 14164.92\r\n9.5, 2015.4, 3974.24, 5867.15, 7688.35, 9433.46, 11098.89, 12681.58, 14178.84\r\n10, 2013.65, 3971.12, 5863.1, 7683.82, 9428.92, 11094.83, 12678.48, 14177.19\r\n10.5, 2010.43, 3965.04, 5854.58, 7673.31, 9416.9, 11081.77, 12664.87, 14163.51\r\n11, 2006.09, 3956.73, 5842.69, 7658.29, 9399.2, 11061.86, 12643.23, 14140.62\r\n11.5, 2000.94, 3946.76, 5828.3, 7639.9, 9377.24, 11036.8, 12615.52, 14110.74\r\n12, 1995.19, 3935.59, 5812.08, 7619.02, 9352.14, 11007.91, 12583.3, 14075.63\r\n12.5, 1989.02, 3923.55, 5794.54, 7596.36, 9324.76, 10976.24, 12547.76, 14036.68\r\n13, 1982.57, 3910.94, 5776.1, 7572.47, 9295.8, 10942.61, 12509.88, 13994.97\r\n13.5, 1975.94, 3897.96, 5757.09, 7547.77, 9265.79, 10907.67, 12470.41, 13951.37\r\n14, 1969.22, 3884.77, 5737.75, 7522.61, 9235.15, 10871.92, 12429.93, 13906.55\r\n14.5, 1962.46, 3871.51, 5718.27, 7497.23, 9204.21, 10835.75, 12388.91, 13861.05\r\n15, 1955.73, 3858.28, 5698.81, 7471.85, 9173.21, 10799.49, 12347.71, 13815.27\r\n15.5, 1949.05, 3845.15, 5679.48, 7446.61, 9142.37, 10763.35, 12306.61, 13769.55\r\n16, 1942.46, 3832.17, 5660.38, 7421.64, 9111.82, 10727.53, 12265.82, 13724.13\r\n16.5, 1935.97, 3819.4, 5641.55, 7397.02, 9081.68, 10692.16, 12225.52, 13679.2\r\n17, 1929.6, 3806.86, 5623.06, 7372.82, 9052.04, 10657.35, 12185.83, 13634.92\r\n17.5, 1923.37, 3794.57, 5604.94, 7349.1, 9022.96, 10623.17, 12146.83, 13591.38\r\n18, 1917.28, 3782.56, 5587.21, 7325.88, 8994.48, 10589.68, 12108.6, 13548.67\r\n18.5, 1911.33, 3770.83, 5569.89, 7303.18, 8966.64, 10556.93, 12071.18, 13506.85\r\n19, 1905.53, 3759.38, 5552.99, 7281.02, 8939.44, 10524.92, 12034.6, 13465.95\r\n19.5, 1899.87, 3748.23, 5536.51, 7259.41, 8912.91, 10493.68, 11998.88, 13425.99\r\n20, 1894.37, 3737.36, 5520.45, 7238.35, 8887.04, 10463.21, 11964.03, 13386.99\r\n20.5, 1889.01, 3726.78, 5504.81, 7217.83, 8861.82, 10433.51, 11930.05, 13348.95\r\n21, 1883.79, 3716.48, 5489.59, 7197.84, 8837.27, 10404.57, 11896.93, 13311.86\r\n21.5, 1878.72, 3706.46, 5474.77, 7178.39, 8813.35, 10376.38, 11864.66, 13275.71\r\n22, 1873.78, 3696.71, 5460.34, 7159.45, 8790.07, 10348.93, 11833.23, 13240.49\r\n22.5, 1868.98, 3687.23, 5446.31, 7141.02, 8767.4, 10322.2, 11802.62, 13206.18\r\n23, 1864.31, 3677.99, 5432.65, 7123.08, 8745.34, 10296.17, 11772.8, 13172.75\r\n23.5, 1859.76, 3669.01, 5419.36, 7105.62, 8723.86, 10270.83, 11743.76, 13140.19\r\n24, 1855.34, 3660.27, 5406.42, 7088.63, 8702.94, 10246.15, 11715.48, 13108.47\r\n24.5, 1851.04, 3651.76, 5393.83, 7072.08, 8682.58, 10222.12, 11687.93, 13077.57\r\n25, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\n26, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Lateral Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFy107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy107.par\r\n\r\n#BlueLink1 Tire: Lateral Force`225/60 R18` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx107.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.02, 862.81, 1783.13, 2762.04, 3794.59, 4873.05, 5988.03, 7129.14, 8285.48\r\n0.04, 1405.11, 2856.38, 4345.65, 5859.21, 7381.77, 8898.09, 10393.74, 11855.5\r\n0.06, 1683.96, 3384.43, 5089.04, 6782.93, 8451.6, 10081.79, 11661.81, 13181.59\r\n0.08, 1827.85, 3649.23, 5451.02, 7219.83, 8943.43, 10611.08, 12213.62, 13743.29\r\n0.1, 1906.98, 3792.03, 5642.2, 7445.59, 9191.77, 10871.81, 12478.17, 14004.57\r\n0.12, 1953.08, 3873.7, 5749.19, 7568.78, 9323.31, 11005.08, 12607.67, 14125.76\r\n0.14, 1980.9, 3921.81, 5810.31, 7636.48, 9392.07, 11070.27, 12665.46, 14173.03\r\n0.16, 1997.79, 3949.97, 5844.33, 7671.56, 9424.12, 11095.9, 12681.88, 14178.04\r\n0.18, 2007.75, 3965.55, 5861.32, 7686.27, 9433.43, 11097.23, 12673.18, 14157.7\r\n0.2, 2013.13, 3972.81, 5867.14, 7687.73, 9428.09, 11083.11, 12648.74, 14121.81\r\n0.22, 2015.35, 3974.42, 5865.42, 7680.34, 9413.11, 11059, 12614.36, 14076.35\r\n0.24, 2015.35, 3972.07, 5858.5, 7666.95, 9391.71, 11028.42, 12573.74, 14025.16\r\n0.26, 2013.76, 3966.92, 5847.96, 7649.47, 9366.06, 10993.69, 12529.34, 13970.72\r\n0.28, 2011.02, 3959.8, 5834.91, 7629.22, 9337.64, 10956.43, 12482.8, 13914.72\r\n0.3, 2007.45, 3951.26, 5820.11, 7607.14, 9307.51, 10917.73, 12435.27, 13858.28\r\n0.32, 2003.28, 3941.72, 5804.15, 7583.9, 9276.39, 10878.38, 12387.52, 13802.18\r\n0.34, 1998.68, 3931.51, 5787.42, 7559.98, 9244.83, 10838.92, 12340.11, 13746.92\r\n0.36, 1993.78, 3920.84, 5770.24, 7535.74, 9213.2, 10799.74, 12293.41, 13692.85\r\n0.38, 1988.68, 3909.89, 5752.83, 7511.45, 9181.77, 10761.12, 12247.67, 13640.2\r\n0.4, 1983.44, 3898.79, 5735.37, 7487.29, 9150.75, 10723.23, 12203.05, 13589.1\r\n0.42, 1978.13, 3887.65, 5717.98, 7463.4, 9120.27, 10686.22, 12159.68, 13539.63\r\n0.44, 1972.79, 3876.53, 5700.76, 7439.89, 9090.44, 10650.16, 12117.59, 13491.82\r\n0.46, 1967.46, 3865.5, 5683.77, 7416.82, 9061.31, 10615.11, 12076.84, 13445.67\r\n0.48, 1962.16, 3854.6, 5667.07, 7394.26, 9032.94, 10581.08, 12037.42, 13401.17\r\n0.5, 1956.92, 3843.87, 5650.7, 7372.23, 9005.34, 10548.1, 11999.32, 13358.28\r\n0.52, 1951.74, 3833.32, 5634.68, 7350.75, 8978.52, 10516.16, 11962.53, 13316.96\r\n0.54, 1946.64, 3822.97, 5619.03, 7329.84, 8952.5, 10485.24, 11927, 13277.16\r\n0.56, 1941.64, 3812.84, 5603.75, 7309.5, 8927.25, 10455.32, 11892.7, 13238.82\r\n0.58, 1936.72, 3802.94, 5588.86, 7289.72, 8902.77, 10426.39, 11859.61, 13201.89\r\n0.6, 1931.91, 3793.26, 5574.36, 7270.51, 8879.05, 10398.4, 11827.66, 13166.31\r\n0.62, 1927.2, 3783.82, 5560.24, 7251.85, 8856.06, 10371.34, 11796.82, 13132.02\r\n0.64, 1922.59, 3774.61, 5546.5, 7233.73, 8833.78, 10345.16, 11767.05, 13098.97\r\n0.66, 1918.09, 3765.62, 5533.13, 7216.15, 8812.19, 10319.85, 11738.3, 13067.1\r\n0.68, 1913.69, 3756.87, 5520.13, 7199.08, 8791.28, 10295.36, 11710.53, 13036.36\r\n0.7, 1909.4, 3748.34, 5507.49, 7182.5, 8771.01, 10271.67, 11683.7, 13006.7\r\n0.72, 1905.21, 3740.03, 5495.19, 7166.42, 8751.37, 10248.74, 11657.77, 12978.07\r\n0.74, 1901.12, 3731.93, 5483.24, 7150.8, 8732.33, 10226.54, 11632.7, 12950.42\r\n0.76, 1897.13, 3724.05, 5471.61, 7135.64, 8713.87, 10205.05, 11608.46, 12923.72\r\n0.78, 1893.24, 3716.37, 5460.31, 7120.91, 8695.97, 10184.23, 11585, 12897.9\r\n0.8, 1889.45, 3708.9, 5449.31, 7106.61, 8678.6, 10164.06, 11562.3, 12872.95\r\n0.82, 1885.74, 3701.61, 5438.62, 7092.72, 8661.76, 10144.52, 11540.33, 12848.81\r\n0.84, 1882.13, 3694.52, 5428.22, 7079.23, 8645.4, 10125.56, 11519.04, 12825.45\r\n0.86, 1878.61, 3687.6, 5418.09, 7066.11, 8629.53, 10107.19, 11498.41, 12802.83\r\n0.88, 1875.18, 3680.87, 5408.24, 7053.36, 8614.12, 10089.36, 11478.42, 12780.93\r\n0.9, 1871.82, 3674.31, 5398.66, 7040.96, 8599.14, 10072.05, 11459.04, 12759.71\r\n0.92, 1868.55, 3667.91, 5389.32, 7028.9, 8584.6, 10055.26, 11440.24, 12739.14\r\n0.94, 1865.36, 3661.68, 5380.23, 7017.17, 8570.46, 10038.95, 11421.99, 12719.2\r\n0.96, 1862.25, 3655.6, 5371.38, 7005.76, 8556.71, 10023.1, 11404.28, 12699.85\r\n0.98, 1859.21, 3649.67, 5362.76, 6994.65, 8543.34, 10007.7, 11387.08, 12681.07\r\n1, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\n1.02, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx107.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`225/60 R18` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`225/60 R18`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n784.532, -2.7453\r\n1569.064, -6.7216\r\n2353.596, -11.0497\r\n3138.128, -15.5865\r\n3922.66, -20.2695\r\n4707.192, -25.0638\r\n5491.724, -29.9472\r\n6276.256, -34.9047\r\n7060.788, -39.925\r\n7845.32, -45\r\n8629.852, -50.1231\r\n9414.384, -55.2891\r\n10198.916, -60.4937\r\n10983.448, -65.7334\r\n11767.98, -71.0051\r\n12552.512, -76.3065\r\n13337.044, -81.6351\r\n14121.576, -86.9892\r\n14906.108, -92.3669\r\n15690.64, -97.767\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 225/60 R18\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : CamStiff107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`225/60 R18` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 225/60 R18\r\n#Library : Tire\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : Tire109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n800 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire109.par\r\n\r\n#BlueLink9 Tire`225/60 R18` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`225/60 R18` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp112.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*CT_FX_L -6.3e-6\r\n*CT_FX_R -6.3e-6\r\n*CS_FY_L -8.3e-6\r\n*CS_FY_R -8.3e-6\r\n*CS_MZ_L -1.2e-4\r\n*CS_MZ_R -1.2e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L -3.3e-5\r\n*CI_FY_R -3.3e-5\r\n*CI_MZ_L -5e-5\r\n*CI_MZ_R -5e-5\r\n*C_LONG_L 3.6e-5\r\n*C_LONG_R 3.6e-5\r\n*C_LAT_L 9.4e-5\r\n*C_LAT_R 9.4e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 344\r\n\r\nMX_AUX_COEFFICIENT 344\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 344 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 344 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg` ` , Roll moment\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring110.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`46 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 46\r\nFS_EXT_COEFFICIENT 46\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 46\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 46 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 46 N/mm\r\n#Category:\r\n#FileID  : Spring110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring110.par\r\n\r\n#BlueLink0 Suspension: Spring`46 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`46 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Rear Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\nRear spring rate chosen for a rear ride frequency of 1.4 Hz and a rear corner weight of 380 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp112.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.` CS E-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.1\r\n*TOE_R 0.1\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Left wheel dive (caster change)\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Left wheel X\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Left wheel camber\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Left wheel lateral (-Y)\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Rear Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\nGeneric 5-Link rear suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension` CS E-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`225/60 R18` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`225/60 R18` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass`CS E-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 3050\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 4250\r\nH_H 500\r\nH_CG_SU 530\r\nLX_AXLE 3050\r\nLX_CG_SU 1400\r\nM_SU 1650\r\nIXX_SU 928.1\r\nIYY_SU 2788.5\r\nIZZ_SU 3234.0\r\nIXZ_SU 0\r\nRX_SGUI 0.750\r\nRY_SGUI 1.300\r\nRZ_SGUI 1.400\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1480\r\nY_LENGTH 1880\r\n*HWC_LF 320\r\n*HWC_RF 320\r\n*HWC_LR 300\r\n*HWC_RR 300\r\n\r\nH_WC 300\r\niside 2\r\nH_WC 300\r\niaxle 1\r\niside 1\r\nH_WC 320\r\niside 2\r\nH_WC 320\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS E-Class } E-Class, Sedan Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : E-Class, Sedan Sprung Mass\r\n#Category: CS E-Class\r\n#FileID  : SprMass106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass` CS E-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`E-Class, Sedan Aero`CS E-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1525\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 3050\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS E-Class } E-Class, Sedan Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : E-Class, Sedan Aero\r\n#Category: CS E-Class\r\n#FileID  : Aero105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`E-Class, Sedan Aero` CS E-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh105.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`E-Class, Sedan`E-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 3048\r\nOBJ_Y_LENGTH 1880\r\nOBJ_Z_LENGTH 1480\r\n*DZ_V 0\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 375\r\n*WHEEL_RATIO 1.1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup111.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`E-Class, Sedan`CS E-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.25\r\n*X_REF_LENGTH 2711\r\n*Y_REF_LENGTH 1725\r\n*Z_REF_LENGTH 1400\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL128.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Body`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .6\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Body\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL128.par\r\n\r\n#BlueLink0 Animator: Shape File Link`European Sedan: Body` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL129.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Details`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Details\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL129.par\r\n\r\n#BlueLink1 Animator: Shape File Link`European Sedan: Details` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL130.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Windows`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0\r\n*SPECULAR 1\r\n*TRANSPARENCY 0.7\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.7\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Windows\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL130.par\r\n\r\n#BlueLink2 Animator: Shape File Link`European Sedan: Windows` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL131.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Interior Trim`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\interior_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Interior Trim\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Interior Trim\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL131.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Interior Trim` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL132.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Steering Wheel`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Steering Wheel\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL132.par\r\n\r\n#BlueLink4 Animator: Shape File Link`European Sedan: Steering Wheel` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL133.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Seats`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Seats\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL133\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL133.par\r\n\r\n#BlueLink5 Animator: Shape File Link`European Sedan: Seats` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL134.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Driver`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.69 0.69 0.69\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Driver\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL134\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL134.par\r\n\r\n#BlueLink13 Animator: Shape File Link`European Sedan: Driver` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nx_ref_length 2711\r\ny_ref_length 1725\r\nz_ref_length 1400\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Animator: Shape Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : StlGroup111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup111.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`E-Class, Sedan` CS E-Class` , Vehicle body\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL151.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Brake Lights (E-Class)`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 .8 .8\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.02\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.25\r\nX_REF_LENGTH 2711\r\nY_REF_LENGTH 1725\r\nZ_REF_LENGTH 1400\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Brake Lights (E-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Brake Lights (E-Class)\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL151\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL151.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Brake Lights (E-Class)` CS European Sedan` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { E-Class Vehicles } E-Class, Sedan\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : E-Class, Sedan\r\n#Category: E-Class Vehicles\r\n#FileID  : AniVeh105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh105.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 1\r\nPMAX_SC 200\r\nENTER_PARSFILE Powertrain\\4wd\\4WD103.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine112.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`250 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.38\r\nTC_THR_REL 0.02\r\nTC_THR_APP 0.06\r\n\r\n#CheckBox0 1\r\nOPT_THROTTLE_DELAY 1\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 41.13, 126.46, 168.44, 171.86, 173.81, 174.77, 175.1, 175.18, 175.23, 175.18\r\n633, 49.35, 154.32, 232.06, 247.82, 250.35, 251.38, 251.74, 251.77, 251.77, 251.77\r\n750, 0, 145.21, 245.96, 268.1, 274.08, 276.25, 277.05, 277.12, 277.1, 277.07\r\n1107, -16.45, 117.35, 288.44, 330.1, 346.63, 352.29, 354.4, 354.59, 354.55, 354.4\r\n1463, -24.68, 78.29, 278.01, 345.45, 367.46, 377.44, 382.32, 383.45, 384.2, 391.51\r\n1820, -27.97, 42.77, 246.75, 351.59, 388.29, 402.59, 410.23, 412.31, 413.85, 424.41\r\n2177, -33.51, 16.45, 195.49, 338.42, 394.8, 427.7, 432.64, 437.57, 442.51, 453.42\r\n2533, -42.07, -10.64, 135.08, 302.54, 398.09, 443.64, 455.67, 463.99, 468.83, 477.05\r\n2890, -50.08, -25.19, 93.73, 255.06, 387.36, 448.48, 473.93, 480.34, 490.21, 498.44\r\n3247, -57.14, -36.65, 62.58, 203.53, 371.29, 444.15, 477.05, 490.21, 500.08, 509.95\r\n3603, -64.08, -46.7, 39.02, 160.4, 334.05, 430.99, 478.7, 493.5, 505.02, 514.89\r\n3960, -71.06, -56.01, 19.61, 126.98, 289.7, 413.12, 473.76, 491.86, 503.37, 509.95\r\n4317, -78.44, -65.43, 0.46, 95.46, 249.64, 394.29, 465.54, 481.99, 493.5, 503.27\r\n4673, -86.11, -74.79, -16.57, 68.44, 207.81, 366.08, 452.38, 468.83, 485.28, 493.5\r\n5030, -94.28, -84.03, -31.71, 44.85, 170.57, 330.59, 435.93, 452.38, 468.83, 477.05\r\n5387, -102.47, -93.46, -45.75, 24, 138.78, 293.42, 410.15, 426.06, 448.04, 452.77\r\n5743, -111.65, -103.3, -59.35, 4.69, 109.99, 254.69, 367.91, 393, 404.78, 409.44\r\n6100, -121.65, -113.67, -72.91, -13.57, 83.71, 217.11, 322.13, 345.48, 356.46, 360.66\r\n6500, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25\r\n6700, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 250 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 250 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine112.par\r\n\r\n#BlueLink0 Powertrain: Engine`250 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 250 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.009121\r\n0.1, 0.009121\r\n0.2, 0.009121\r\n0.3, 0.009121\r\n0.4, 0.00912\r\n0.5, 0.009112\r\n0.6, 0.009066\r\n0.7, 0.008864\r\n0.8, 0.008142\r\n0.9, 0.005941\r\n0.95, 0.00366\r\n0.99, 0.000872\r\n1.01, -0.000872\r\n1.05, -0.00366\r\n1.1, -0.005941\r\n1.2, -0.008142\r\n1.3, -0.008864\r\n1.4, -0.009066\r\n1.5, -0.009112\r\n1.6, -0.00912\r\n1.7, -0.009121\r\n1.8, -0.009121\r\n1.9, -0.009121\r\n2, -0.009121\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 250 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 250 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC104.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 250 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission`\r\n#RingCtrl0 7\r\nNGEARS 7\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.42\r\nR_GEAR_TR(1) 4.38\r\nR_GEAR_TR(2) 2.86\r\nR_GEAR_TR(3) 1.92\r\nR_GEAR_TR(4) 1.37\r\nR_GEAR_TR(5) 1.00\r\nR_GEAR_TR(6) 0.82\r\nR_GEAR_TR(7) 0.70\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nITR(7) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_F(7) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nR_EFF_TR_R(7) 0.99\r\nT_SHIFT 0.35\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift113.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 1-2 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 629\r\n0.2, 629\r\n0.8, 1233\r\n1, 1233\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 503\r\n0.4, 503\r\n0.8, 925\r\n1, 925\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 1-2 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift113.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`7-speed, 1-2 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift114.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 2-3 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 938\r\n0.2, 938\r\n0.8, 1888\r\n1, 1888\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 750\r\n0.4, 750\r\n0.8, 1416\r\n1, 1416\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 2-3 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift114.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`7-speed, 2-3 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift115.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 3-4 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1314\r\n0.2, 1314\r\n0.8, 2813\r\n1, 2813\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1051\r\n0.4, 1051\r\n0.8, 2109\r\n1, 2109\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 3-4 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift115.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`7-speed, 3-4 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift116.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 4-5 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 3942\r\n1, 3942\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 2956\r\n1, 2956\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 4-5 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift116.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`7-speed, 4-5 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift117.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 5-6 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2195\r\n0.2, 2195\r\n0.8, 5400\r\n1, 5400\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1756\r\n0.4, 1756\r\n0.8, 4050\r\n1, 4050\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 5-6 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift117.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`7-speed, 5-6 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\nENTER_PARSFILE Powertrain\\Shift\\Shift118.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 6-7 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2571\r\n0.2, 2571\r\n0.8, 6585\r\n1, 6585\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2057\r\n0.4, 2057\r\n0.8, 4939\r\n1, 4939\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 6-7 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 6-7 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift118.par\r\n\r\n#BlueLink5 Powertrain: Shift Schedule`7-speed, 6-7 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 7\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 7-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 7-Speed Transmission\r\n#Category:\r\n#FileID  : Trans104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans104.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Viscous - Gear Ratio 2.65`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_FD 2.65\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 1\r\nLOCKED_FD_K 100\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 1\r\nLOCKED_DIFF_K 100\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Viscous - Gear Ratio 2.65` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff101.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Viscous - Gear Ratio 2.65`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_RD 2.65\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff101.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Viscous - Gear Ratio 2.65` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 250 kW, 7-spd., 2.65 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 250 kW, 7-spd., 2.65 Ratio\r\n#Category:\r\n#FileID  : 4WD103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\nGeneric 250 kW powertrain with an automatic transmission.  The torque converter data has been tuned to work with the 250 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD103.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W111.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`E-Class, Sedan w/ ABS`CS E-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.15\r\nON_F_SGUI 0.1\r\nON_R_SGUI 0.1\r\nV_F_SGUI 3\r\nV_R_SGUI 3\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq107.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`350 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 350\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 350\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 350 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 350 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq107.par\r\n\r\n#BlueLink0 Brakes: Torque`350 N-m/MPa` ` , Left front\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`350 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS E-Class } E-Class, Sedan w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : E-Class, Sedan w/ ABS\r\n#Category: CS E-Class\r\n#FileID  : Brk4W111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W111.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`E-Class, Sedan w/ ABS` CS E-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2106.par`08-02-2011`16:42:43\r\n#FullDataName Steering`E-Class, Sedan: Power R&P`CS E-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.0001\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 39.5\r\n*L2_LKPO 0\r\n*R1_LKPO 39.5\r\n*R2_LKPO 0\r\n*L1_AKPI 8.0\r\n*L2_AKPI 0\r\n*R1_AKPI 8.0\r\n*R2_AKPI 0\r\n*L1_ACAST 3.5\r\n*L2_ACAST 0\r\n*R1_ACAST 3.5\r\n*R2_ACAST 0\r\n*L1_XKPO -1.0\r\n*L2_XKPO 0\r\n*R1_XKPO -1.0\r\n*R2_XKPO 0\r\n*D_RACK_F 4\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 1\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.0001\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niside 2\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nENTER_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nRACK_TRAVEL_TABLE SPLINE\r\n-916.4942656, -86.36\r\n-867.4138828, -83.03846154\r\n-824.4560495, -79.96296296\r\n-786.3359267, -77.10714286\r\n-752.1486273, -74.44827586\r\n-721.227932, -71.96666667\r\n-693.0665246, -69.64516129\r\n-667.2677336, -67.46875\r\n-643.5147167, -65.42424242\r\n-621.549914, -63.5\r\n-601.160854, -61.68571429\r\n-582.1700533, -59.97222222\r\n-564.4276481, -58.35135135\r\n-547.8059016, -56.81578947\r\n-532.1950333, -55.35897436\r\n-517.5, -53.975\r\n-503.6379761, -52.65853659\r\n-490.5363551, -51.4047619\r\n-478.1311476, -50.20930233\r\n-466.3656834, -49.06818182\r\n-455.1895493, -47.97777778\r\n-444.557715, -46.93478261\r\n-434.4298052, -45.93617021\r\n-424.7694916, -44.97916667\r\n-415.5439804, -44.06122449\r\n-406.7235787, -43.18\r\n0, 0\r\n406.7235787, 43.18\r\n415.5439804, 44.06122449\r\n424.7694916, 44.97916667\r\n434.4298052, 45.93617021\r\n444.557715, 46.93478261\r\n455.1895493, 47.97777778\r\n466.3656834, 49.06818182\r\n478.1311476, 50.20930233\r\n490.5363551, 51.4047619\r\n503.6379761, 52.65853659\r\n517.5, 53.975\r\n532.1950333, 55.35897436\r\n547.8059016, 56.81578947\r\n564.4276481, 58.35135135\r\n582.1700533, 59.97222222\r\n601.160854, 61.68571429\r\n621.549914, 63.5\r\n643.5147167, 65.42424242\r\n667.2677336, 67.46875\r\n693.0665246, 69.64516129\r\n721.227932, 71.96666667\r\n752.1486273, 74.44827586\r\n786.3359267, 77.10714286\r\n824.4560495, 79.96296296\r\n867.4138828, 83.03846154\r\n916.4942656, 86.36\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Rack kinematics; { CS E-Class } E-Class, Sedan Rack Kinematics\r\n#Library : Steering System: Rack kinematics\r\n#DataSet : E-Class, Sedan Rack Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RackKin113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steering rack\r\n\r\nEXIT_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par\r\n\r\n#BlueLink4 Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics` CS E-Class` , Rack input to output: front\r\n\r\nD_RACK 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -64.00924761\r\n-83.03846154, -60.39496988\r\n-79.96296296, -57.20021687\r\n-77.10714286, -54.34703994\r\n-74.44827586, -51.77840772\r\n-71.96666667, -49.45080212\r\n-69.64516129, -47.32999144\r\n-67.46875, -45.38842777\r\n-65.42424242, -43.60354705\r\n-63.5, -41.95660533\r\n-61.68571429, -40.43185156\r\n-59.97222222, -39.01592124\r\n-58.35135135, -37.69738095\r\n-56.81578947, -36.46637887\r\n-55.35897436, -35.31437211\r\n-53.975, -34.23391082\r\n-52.65853659, -33.21846512\r\n-51.4047619, -32.26228482\r\n-50.20930233, -31.3602847\r\n-49.06818182, -30.5079499\r\n-47.97777778, -29.70125727\r\n-46.93478261, -28.93660959\r\n-45.93617021, -28.21078022\r\n-44.97916667, -27.52086625\r\n-44.06122449, -26.86424867\r\n-43.18, -26.23855826\r\n0, 0\r\n43.18, 21.3843292\r\n44.06122449, 21.8085708\r\n44.97916667, 22.25095273\r\n45.93617021, 22.71274374\r\n46.93478261, 23.19534249\r\n47.97777778, 23.70029582\r\n49.06818182, 24.22932041\r\n50.20930233, 24.78432852\r\n51.4047619, 25.367459\r\n52.65853659, 25.98111474\r\n53.975, 26.62800831\r\n55.35897436, 27.31121822\r\n56.81578947, 28.03425875\r\n58.35135135, 28.80116776\r\n59.97222222, 29.61661825\r\n61.68571429, 30.48606232\r\n63.5, 31.41591936\r\n65.42424242, 32.41382662\r\n67.46875, 33.48897913\r\n69.64516129, 34.65260127\r\n71.96666667, 35.91861787\r\n74.44827586, 37.30463871\r\n77.10714286, 38.83345523\r\n79.96296296, 40.53541768\r\n83.03846154, 42.45242008\r\n86.36, 44.6450584\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -44.6450584\r\n-83.03846154, -42.45242008\r\n-79.96296296, -40.53541768\r\n-77.10714286, -38.83345523\r\n-74.44827586, -37.30463871\r\n-71.96666667, -35.91861787\r\n-69.64516129, -34.65260127\r\n-67.46875, -33.48897913\r\n-65.42424242, -32.41382662\r\n-63.5, -31.41591936\r\n-61.68571429, -30.48606232\r\n-59.97222222, -29.61661825\r\n-58.35135135, -28.80116776\r\n-56.81578947, -28.03425875\r\n-55.35897436, -27.31121822\r\n-53.975, -26.62800831\r\n-52.65853659, -25.98111474\r\n-51.4047619, -25.367459\r\n-50.20930233, -24.78432852\r\n-49.06818182, -24.22932041\r\n-47.97777778, -23.70029582\r\n-46.93478261, -23.19534249\r\n-45.93617021, -22.71274374\r\n-44.97916667, -22.25095273\r\n-44.06122449, -21.8085708\r\n-43.18, -21.3843292\r\n0, 0\r\n43.18, 26.23855826\r\n44.06122449, 26.86424867\r\n44.97916667, 27.52086625\r\n45.93617021, 28.21078022\r\n46.93478261, 28.93660959\r\n47.97777778, 29.70125727\r\n49.06818182, 30.5079499\r\n50.20930233, 31.3602847\r\n51.4047619, 32.26228482\r\n52.65853659, 33.21846512\r\n53.975, 34.23391082\r\n55.35897436, 35.31437211\r\n56.81578947, 36.46637887\r\n58.35135135, 37.69738095\r\n59.97222222, 39.01592124\r\n61.68571429, 40.43185156\r\n63.5, 41.95660533\r\n65.42424242, 43.60354705\r\n67.46875, 45.38842777\r\n69.64516129, 47.32999144\r\n71.96666667, 49.45080212\r\n74.44827586, 51.77840772\r\n77.10714286, 54.34703994\r\n79.96296296, 57.20021687\r\n83.03846154, 60.39496988\r\n86.36, 64.00924761\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS E-Class } E-Class, Sedan Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : E-Class, Sedan Wheel Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RkKinAx119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics` CS E-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost102.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 1\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 2500\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -2500, -2500, -2500, -2500, -2500, -2500\r\n-15, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12, -2500, -2500, -2500, -2500, -2500, -2500\r\n-11.5, -2500, -2500, -2500, -2500, -2266.8, -2141.32\r\n-11, -2500, -2420, -2427.94, -2280.85, -1736.13, -1500.51\r\n-10.5, -2500, -2205, -2063.12, -1815.93, -1313.29, -1034.22\r\n-10, -2500, -2000, -1739.25, -1429.79, -980, -700\r\n-9.5, -2500, -1805, -1453.43, -1112.03, -720.39, -464.39\r\n-9, -2500, -1620, -1202.85, -853.22, -520.81, -301.33\r\n-8.5, -2500, -1445, -984.76, -644.8, -369.61, -190.74\r\n-8, -2500, -1280, -796.49, -479.09, -256.9, -117.44\r\n-7.5, -2500, -1125, -635.44, -349.2, -174.42, -70.08\r\n-7, -2500, -980, -499.12, -249.03, -115.3, -40.35\r\n-6.5, -2500, -845, -385.09, -173.2, -73.91, -22.31\r\n-6, -2500, -720, -291, -117.01, -45.72, -11.76\r\n-5.5, -2500, -605, -214.6, -76.39, -27.13, -5.86\r\n-5, -2500, -500, -153.73, -47.89, -15.31, -2.73\r\n-4.5, -2278.13, -405, -106.32, -28.58, -8.14, -1.18\r\n-4, -1600, -320, -70.4, -16.05, -4.01, -0.46\r\n-3.5, -1071.88, -245, -44.12, -8.34, -1.8, -0.16\r\n-3, -675, -180, -25.72, -3.92, -0.71, -0.05\r\n-2.5, -390.63, -125, -13.59, -1.6, -0.24, -0.01\r\n-2, -200, -80, -6.22, -0.54, -0.06, 0\r\n-1.5, -84.38, -45, -2.27, -0.13, -0.01, 0\r\n-1, -25, -20, -0.55, -0.02, 0, 0\r\n-0.5, -3.13, -5, -0.05, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 3.13, 5, 0.05, 0, 0, 0\r\n1, 25, 20, 0.55, 0.02, 0, 0\r\n1.5, 84.38, 45, 2.27, 0.13, 0.01, 0\r\n2, 200, 80, 6.22, 0.54, 0.06, 0\r\n2.5, 390.63, 125, 13.59, 1.6, 0.24, 0.01\r\n3, 675, 180, 25.72, 3.92, 0.71, 0.05\r\n3.5, 1071.88, 245, 44.12, 8.34, 1.8, 0.16\r\n4, 1600, 320, 70.4, 16.05, 4.01, 0.46\r\n4.5, 2278.13, 405, 106.32, 28.58, 8.14, 1.18\r\n5, 2500, 500, 153.73, 47.89, 15.31, 2.73\r\n5.5, 2500, 605, 214.6, 76.39, 27.13, 5.86\r\n6, 2500, 720, 291, 117.01, 45.72, 11.76\r\n6.5, 2500, 845, 385.09, 173.2, 73.91, 22.31\r\n7, 2500, 980, 499.12, 249.03, 115.3, 40.35\r\n7.5, 2500, 1125, 635.44, 349.2, 174.42, 70.08\r\n8, 2500, 1280, 796.49, 479.09, 256.9, 117.44\r\n8.5, 2500, 1445, 984.76, 644.8, 369.61, 190.74\r\n9, 2500, 1620, 1202.85, 853.22, 520.81, 301.33\r\n9.5, 2500, 1805, 1453.43, 1112.03, 720.39, 464.39\r\n10, 2500, 2000, 1739.25, 1429.79, 980, 700\r\n10.5, 2500, 2205, 2063.12, 1815.93, 1313.29, 1034.22\r\n11, 2500, 2420, 2427.94, 2280.85, 1736.13, 1500.51\r\n11.5, 2500, 2500, 2500, 2500, 2266.8, 2141.32\r\n12, 2500, 2500, 2500, 2500, 2500, 2500\r\n12.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n13, 2500, 2500, 2500, 2500, 2500, 2500\r\n13.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n14, 2500, 2500, 2500, 2500, 2500, 2500\r\n14.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n15, 2500, 2500, 2500, 2500, 2500, 2500\r\n16, 2500, 2500, 2500, 2500, 2500, 2500\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive High Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive High Boost Curve\r\n#Category:\r\n#FileID  : FBoost102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost102.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp104.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`E-Class, Sedan - Steering Comp.`CS E-Class\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1.7738e-07\r\n\r\nSTEER_COMP_COEFFICIENT 1.7738e-07\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; { CS E-Class } E-Class, Sedan - Steering Comp.\r\n#Library : Steering System: Compliance\r\n#DataSet : E-Class, Sedan - Steering Comp.\r\n#Category: CS E-Class\r\n#FileID  : StrCmp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp104.par\r\n\r\n#BlueLink13 Steering System: Compliance`E-Class, Sedan - Steering Comp.` CS E-Class` , Front compliance\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS E-Class } E-Class, Sedan: Power R&P\r\n#Library : Steering\r\n#DataSet : E-Class, Sedan: Power R&P\r\n#Category: CS E-Class\r\n#FileID  : StrSys2106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 3050 mm\r\nFront Track =  1600 mm\r\n\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2106.par\r\n\r\n#BlueLink7 Steering`E-Class, Sedan: Power R&P` CS E-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Vehicle: Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : Vehicle123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:24\r\n#VehCode Ind_Ind\r\n\r\nENTRY_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\nGeneric E-Class Sedan (Full-Size) with SLA front and 5-Link rear suspension.\r\n\r\nE-Class type vehicles include Audi A6, BMW 5-Series, Mercedes Benz E350, Lexus GS, Cadillac DTS, Chrysler 300C.\r\nEXIT_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle123.par\r\n\r\n#BlueLink2 Vehicle: Assembly`E-Class, Sedan` CS E-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc171.par`09-01-2019`07:52:20\r\n#FullDataName Procedures`chapt3_Radar Active Cruise Control: Second Car`BOOK_MPC_Procedures\r\n#CheckBox3 0\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 80\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 0\r\nSPEED 80\r\nSV_VXS 80\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Throttle\\Throttle102.par`08-02-2011`16:43:27\r\n#FullDataName Control: Throttle (Open Loop)`No Open-Loop Throttle`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nTHROTTLE_ENGINE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Throttle (Open Loop); No Open-Loop Throttle\r\n#Library : Control: Throttle (Open Loop)\r\n#DataSet : No Open-Loop Throttle\r\n#Category:\r\n#FileID  : Throttle102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:27\r\n#VehCode Open-loop throttle control\r\n\r\nEXIT_PARSFILE Control\\Throttle\\Throttle102.par\r\n\r\n#BlueLink29 Control: Throttle (Open Loop)`No Open-Loop Throttle` ` , Throttle\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1200 m One Lane` Straight` , Misc.\r\n\r\nENTER_PARSFILE Animator\\Groups\\Group124.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Radar Beam Pyramid`ACC Sensor\r\nENTER_PARSFILE Animator\\Frames\\Frame188.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Not Detected)`Car Tracking\r\nADD_REFERENCE_FRAME Car Tracking Car X-Y-Z-Yaw (Radar Not Detected)\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_ROLL_NAME Roll_E\r\nSET_PITCH_NAME Pitch\r\nSET_YAW_NAME Yaw\r\nSET_OFFSET_VAR_Z 0.45\r\nSET_FRAME_VISIBLE_NAME NotDetec\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_Roll_E\r\nANI_Roll_E\r\nWRT_Pitch\r\nANI_Pitch\r\nWRT_Yaw\r\nANI_Yaw\r\nWRT_NotDetec\r\nANI_NotDetec\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Car Tracking } Car X-Y-Z-Yaw (Radar Not Detected)\r\n#Library : Animator: Reference Frame\r\n#DataSet : Car X-Y-Z-Yaw (Radar Not Detected)\r\n#Category: Car Tracking\r\n#FileID  : Frame188\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame188.par\r\n\r\n#BlueLink10 Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Not Detected)` Car Tracking` , Animator data\r\n\r\n#MiscYellow0\r\nX_LENGTH 65\r\nY_LENGTH 12.25\r\nZ_LENGTH 5\r\nDEFINE_OUTPUT NotDetec=IF_GT_0_THEN(InpAux1, 0, 1)\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL352.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Pyramid`Primitives\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\primitives\\pyramid_1m_x_1m_x_1m.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.376 0.376 0.376\r\nX_REF_LENGTH 1\r\nY_REF_LENGTH 1\r\nZ_REF_LENGTH 1\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Primitives } Pyramid\r\n#Library : Animator: Shape File Link\r\n#DataSet : Pyramid\r\n#Category: Primitives\r\n#FileID  : AniSTL352\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL352.par\r\n\r\n#BlueLink11 Animator: Shape File Link`Pyramid` Primitives` , Animator data\r\n\r\n#MiscYellow1\r\nANI_NotDetec\r\nSET_COLOR green\r\nset_transparency .3\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Animator\\Frames\\Frame189.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Detected)`Car Tracking\r\nADD_REFERENCE_FRAME Car Tracking Car X-Y-Z-Yaw (Radar Detected)\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_ROLL_NAME Roll_E\r\nSET_PITCH_NAME Pitch\r\nSET_YAW_NAME Yaw\r\nSET_OFFSET_VAR_Z 0.45\r\nSET_FRAME_VISIBLE_NAME InpAux1\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_Roll_E\r\nANI_Roll_E\r\nWRT_Pitch\r\nANI_Pitch\r\nWRT_Yaw\r\nANI_Yaw\r\nWRT_InpAux1\r\nANI_InpAux1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Car Tracking } Car X-Y-Z-Yaw (Radar Detected)\r\n#Library : Animator: Reference Frame\r\n#DataSet : Car X-Y-Z-Yaw (Radar Detected)\r\n#Category: Car Tracking\r\n#FileID  : Frame189\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame189.par\r\n\r\n#BlueLink12 Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Detected)` Car Tracking` , Animator data\r\n\r\n#MiscYellow2\r\nX_LENGTH 65\r\nY_LENGTH 12.25\r\nZ_LENGTH 5\r\n#ENDMYellow\r\n\r\n#BlueLink13 Animator: Shape File Link`Pyramid` Primitives` , Animator data\r\n\r\n#MiscYellow3\r\nSET_COLOR red\r\nset_transparency .3\r\n#ENDMYellow\r\n\r\n*X_REF_LENGTH 2756\r\n*Y_REF_LENGTH 1988\r\n*Z_REF_LENGTH 1272\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { ACC Sensor } Radar Beam Pyramid\r\n#Library : Animator: Group\r\n#DataSet : Radar Beam Pyramid\r\n#Category: ACC Sensor\r\n#FileID  : Group124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nENTRY_NOTEFILE Animator\\Groups\\Group124_note.txt\r\nThis shape is used to represent a radar field.  It is attached to a reference frame and given some reference lengths for sizing purposes.\r\n\r\nYou need manually to synchronize the animation shape sizes with the actual simulation settings in the Simulink model \"Radar_Acc_CS8.mdl\").\r\n\r\nOpen the above Simulink model and double click \"Radar Sensor\" block. Then, you will see \"View Angle\" and \"Distance Range\".\r\n\r\nFor example, if \"Distance Range\" is 70 (m), you have to set X_LENGTH to 70.  If \"View Angle\" is 10 (deg), you have to set Y_LENGTH to 12.25, which can be obtained by the following hand equations:\r\n\r\nY_LENGTH = {tan(View Angle/2) * Distance Range} * 2.\r\n\r\nZ_LENGTH (height of the radar range) is not involved in the simulation. Therefore, you can adopt any number in order to show good looking animation.\r\n\r\nThis screen is set up to change the visibility of two shape, one green and one red. The color indicates that detection has occurred.\r\nEXIT_NOTEFILE Animator\\Groups\\Group124_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group124.par\r\n\r\n#BlueLink1 Animator: Group`Radar Beam Pyramid` ACC Sensor` , Misc.\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt3_Radar Active Cruise Control: Second Car\r\n#Library : Procedures\r\n#DataSet : chapt3_Radar Active Cruise Control: Second Car\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc171\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 07:52:20\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc171.par\r\n\r\n#BlueLink28 Procedures`chapt3_Radar Active Cruise Control: Second Car` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n#BlueLink23 CarSim Run Control`Chapter3_MPC_ACC: First Car (Ext. Sen.)` BOOK_MPC_Examples` , Overlay run or ERD file\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter3_MPC_ACC: Second Car (Ext. Sen.) <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter3_MPC_ACC: Second Car (Ext. Sen.)\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter3_MPC_ACC: Second Car (Ext. Sen.)\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter3_MPC_ACC: Second Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run286\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 09:12:01\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run286.par\r\n\r\n#BlueLink23 CarSim Run Control`Chapter3_MPC_ACC: Second Car (Ext. Sen.)` BOOK_MPC_Examples` , Overlay run or ERD file\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`B-Class, Sports Car` B-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter3_MPC_ACC: First Car (Ext. Sen.) <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter3_MPC_ACC: First Car (Ext. Sen.)\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter3_MPC_ACC: First Car (Ext. Sen.)\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter3_MPC_ACC: First Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run288\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 23:51:42\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run288.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/Chapter3_MPC_ACC_ Second Car (Ext. Sen.).par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run286.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 09:13 on September 01, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run286.par`09-01-2019`09:12:01\r\n#FullDataName CarSim Run Control`Chapter3_MPC_ACC: Second Car (Ext. Sen.)`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex134.par`09-01-2019`08:51:54\r\n#FullDataName Models: Simulink`chapt3_Radar Active Cruise: Second Car (Ext. Sen.)`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\\LEO_MPCACC_VLV1.mdl\r\n#RunSimCat Ind_Ind`C:\\Users\\Public\\Documents\\CarSim_Data\\Extensions\\Simulink\\Multi_Vehicle\\i_i2_64.dll\r\n#RingCtrl0 1\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 1\r\n*USE_DIFF_SOLVERS 1\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\n*SIM_CODE1 Ind_Ind\r\n*SIM_PATH1 C:\\Users\\Public\\Documents\\CarSim_Data\\Extensions\\Simulink\\Multi_Vehicle\\i_i2_64.dll\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\nENTER_PARSFILE IO_Channels\\I_Channels\\I_Ch121.par`08-30-2019`23:47:24\r\n#FullDataName I/O Channels: Import`Radar ACC Import (Ext. Sen.)`MPC_BOOK_Sim_Imports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_imports_tab.txt\r\n\r\n#MiscYellow0\r\nIMP_THROTTLE_ENGINE Add 0.0 1\r\nIMP_PCON_BK Add 0.0 1\r\nIMP_AUX1 Add 0.0 0\r\n#ENDMYellow\r\n\r\n#RingCtrl0 0\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Import; { MPC_BOOK_Sim_Imports } Radar ACC Import (Ext. Sen.)\r\n#Library : I/O Channels: Import\r\n#DataSet : Radar ACC Import (Ext. Sen.)\r\n#Category: MPC_BOOK_Sim_Imports\r\n#FileID  : I_Ch121\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 23:47:24\r\n#VehCode Import Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\I_Channels\\I_Ch121.par\r\n\r\n#BlueLink0 I/O Channels: Import`Radar ACC Import (Ext. Sen.)` MPC_BOOK_Sim_Imports` , Import\r\n\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch125.par`08-31-2019`10:11:22\r\n#FullDataName I/O Channels: Export`Radar ACC Export (Ext. Sen.)`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Xo\r\nEXP_Yo\r\nEXP_Yaw\r\nEXP_Ax\r\n#MiscYellow0\r\n#Number of Selected Channels: 5\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Xo\r\n#CHN_NAME: Yo\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Ax\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } Radar ACC Export (Ext. Sen.)\r\n#Library : I/O Channels: Export\r\n#DataSet : Radar ACC Export (Ext. Sen.)\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch125\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-31-2019 10:11:22\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch125.par\r\n\r\n#BlueLink1 I/O Channels: Export`Radar ACC Export (Ext. Sen.)` MPC_BOOK_Sim_Exports` , Export\r\n\r\nENTER_PARSFILE Generic\\VS_commands\\GVS107.par`08-02-2011`16:43:24\r\n#FullDataName Generic VS Commands`Install Obsolete CarSim 8.03 Generic Variables`Install Obsolete CarSim 8.03 Generic Variables\r\n#VehCode\r\n\r\n#MiscYellow0\r\n! There were 10 outputs with the root keyword \"flag\". These were simply given a\r\n! value in a data field (yellow field), and written to the outputs.\r\n! The default value of flag 1 was set to the run ID number.\r\n! Change this if you used it for another purpose.\r\ndefine_output flag_1 = ID_RUN;\r\n!\r\n! The remaining flags had a default value of zero.\r\ndefine_output flag_2 = 0;\r\ndefine_output flag_3 = 0;\r\ndefine_output flag_4 = 0;\r\ndefine_output flag_5 = 0;\r\ndefine_output flag_6 = 0;\r\ndefine_output flag_7 = 0;\r\ndefine_output flag_8 = 0;\r\ndefine_output flag_9 = 0;\r\ndefine_output flag_10 = 0;\r\n!\r\n! There were 20 import variables with the root keyword IMP_AUX.\r\n! They could be imported from external code for plotting, use as\r\n! event triggers, etc.\r\ndefine_import imp_aux1 0;\r\ndefine_import imp_aux2 0;\r\ndefine_import imp_aux3 0;\r\ndefine_import imp_aux4 0;\r\ndefine_import imp_aux5 0;\r\ndefine_import imp_aux6 0;\r\ndefine_import imp_aux7 0;\r\ndefine_import imp_aux8 0;\r\ndefine_import imp_aux9 0;\r\ndefine_import imp_aux10 0;\r\ndefine_import imp_aux11 0;\r\ndefine_import imp_aux12 0;\r\ndefine_import imp_aux13 0;\r\ndefine_import imp_aux14 0;\r\ndefine_import imp_aux15 0;\r\ndefine_import imp_aux16 0;\r\ndefine_import imp_aux17 0;\r\ndefine_import imp_aux18 0;\r\ndefine_import imp_aux19 0;\r\ndefine_import imp_aux20 0;\r\n!\r\n! Each auxiliary import had an associated output variable, to automatically\r\n! pass the imported value to the output file.\r\ndefine_output InpAux1 = imp_aux1;\r\ndefine_output InpAux2 = imp_aux2;\r\ndefine_output InpAux3 = imp_aux3;\r\ndefine_output InpAux4 = imp_aux4;\r\ndefine_output InpAux5 = imp_aux5;\r\ndefine_output InpAux6 = imp_aux6;\r\ndefine_output InpAux7 = imp_aux7;\r\ndefine_output InpAux8 = imp_aux8;\r\ndefine_output InpAux9 = imp_aux9;\r\ndefine_output InpAux10 = imp_aux10;\r\ndefine_output InpAux11 = imp_aux11;\r\ndefine_output InpAux12 = imp_aux12;\r\ndefine_output InpAux13 = imp_aux13;\r\ndefine_output InpAux14 = imp_aux14;\r\ndefine_output InpAux15 = imp_aux15;\r\ndefine_output InpAux16 = imp_aux16;\r\ndefine_output InpAux17 = imp_aux17;\r\ndefine_output InpAux18 = imp_aux18;\r\ndefine_output InpAux19 = imp_aux19;\r\ndefine_output InpAux20 = imp_aux20;\r\n!\r\n! 12 table functions with the root keyword \"generic\" were supported.\r\n! This table definition creates 12 isntances, and automatically assigns\r\n! the index \"igeneric\" for their use.\r\ndefine_table generic 12\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Generic VS Commands; { Install Obsolete CarSim 8.03 Generic Variables } Install Obsolete CarSim 8.03 Generic Variables\r\n#Library : Generic VS Commands\r\n#DataSet : Install Obsolete CarSim 8.03 Generic Variables\r\n#Category: Install Obsolete CarSim 8.03 Generic Variables\r\n#FileID  : GVS107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:24\r\n#VehCode\r\n\r\nENTRY_NOTEFILE Generic\\VS_commands\\GVS107_note.txt\r\nSupport has been DROPPED for the CarSim output variables \"flag\", InpAux1 through InpAux 20, import variables imp_aux1 through imp_aux20, and tables generic(1) through generic(12).\r\n\r\nThrough version 8.03, CarSim included a number of built-in \"generic\" output variables, import variables, and configurable functions (tables).\r\n\r\nVS Commands now allow you to create your own outputs, imports, and configurable functions, as well as parameters and variables.\r\n\r\nThis VS Commands dataset installs all of the built-in variables supported before 8.1.\r\n\r\nTo use them, this dataset must be linked so the definitions occur BEFORE any reference to the variables, or just use this example to create them yourself in the appropriate place.\r\n\r\nRECOMMENDED PRACTICE:\r\nCreate new variables with names that are meaningful for your specific use, and don't use the old generic variables at all.\r\nEXIT_NOTEFILE Generic\\VS_commands\\GVS107_note.txt\r\n\r\nEXIT_PARSFILE Generic\\VS_commands\\GVS107.par\r\n\r\n#BlueLink2 Generic VS Commands`Install Obsolete CarSim 8.03 Generic Variables` Install Obsolete CarSim 8.03 Generic Variables` , Misc. Link\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_ACC_ExtSen_Car2.sim\r\n#ENDMYellow\r\n\r\nLIVE_SERVER_UPDATE_FREQ_MAX 60\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt3_Radar Active Cruise: Second Car (Ext. Sen.)\r\n#Library : Models: Simulink\r\n#DataSet : chapt3_Radar Active Cruise: Second Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex134\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 08:51:54\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex134.par\r\n\r\n#BlueLink12 Models: Simulink`chapt3_Radar Active Cruise: Second Car (Ext. Sen.)` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 286\r\nID_RUN 286\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle123.par`08-02-2011`16:42:24\r\n#FullDataName Vehicle: Assembly`E-Class, Sedan`CS E-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp111.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.8613\r\n*R_SPRING_R 0.8613\r\n*R_DAMPER_L 0.8681\r\n*R_DAMPER_R 0.8681\r\n*CT_FX_L -1.9e-6\r\n*CT_FX_R -1.9e-6\r\n*CS_FY_L -3.3e-5\r\n*CS_FY_R -3.3e-5\r\n*CS_MZ_L 1.4e-4\r\n*CS_MZ_R 1.4e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 5e-5\r\n*CI_FY_R 5e-5\r\n*CI_MZ_L -5.3e-5\r\n*CI_MZ_R -5.3e-5\r\n*C_LONG_L 2.0e-4\r\n*C_LONG_R 2.0e-4\r\n*C_LAT_L 2.2e-5\r\n*C_LAT_R 2.2e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.8681\r\n*R_JOUNCE_R 0.8681\r\n*R_REBOUND_L 0.8681\r\n*R_REBOUND_R 0.8681\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock101.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big Car Damping`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE LINEAR\r\n-1410, -5008\r\n-720, -3436\r\n-390, -2324\r\n-210, -1792\r\n-90, -1008\r\n-20, -228\r\n20, 228\r\n90, 596\r\n200, 784\r\n390, 1100\r\n760, 1796\r\n1160, 2560\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big Car Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big Car Damping\r\n#Category:\r\n#FileID  : Shock101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock101.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 384\r\n\r\nMX_AUX_COEFFICIENT 384\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 384 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 384 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+80 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n78, 0\r\n79, 0\r\n80, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-50, -10000\r\n-49, 0\r\n-48, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +80 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +80 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\nENTER_PARSFILE Suspensions\\Springs\\Spring109.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`34 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 34\r\nFS_EXT_COEFFICIENT 34\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 34\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 34 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 34 N/mm\r\n#Category:\r\n#FileID  : Spring109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring109.par\r\n\r\n#BlueLink0 Suspension: Spring`34 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\n#BlueLink3 Suspension: Spring`34 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Front Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.2 Hz and a front corner weight of 446 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp111.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.2\r\n*TOE_R 0.2\r\n*CAMBER_L -0.15\r\n*CAMBER_R -0.15\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Front Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension` CS E-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire109.par`08-02-2011`16:42:33\r\n#FullDataName Tire`225/60 R18`Touring Tires\r\nX_LENGTH 364\r\nZ_LENGTH 364\r\nY_LENGTH 225\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup108.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Euro Sedan Tire`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL136.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Tire\r\n#Category: Tires\r\n#FileID  : AniSTL136\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL136.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Euro. Sedan Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL137.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL137\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL137.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Euro. Sedan Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL138.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL138.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Euro. Sedan Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Euro Sedan Tire\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Euro Sedan Tire\r\n#Category: Tires\r\n#FileID  : StlGroup108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup108.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Euro Sedan Tire` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 225\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 800 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 800; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 800 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 800 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet111.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 800 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 353\r\nR0 364\r\nFZ_TIRE_COEFFICIENT 278\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 764\r\nVLOW_ALPHA 5\r\nRR_C 0.0041\r\nRR_V 0.00003\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.1\r\nENTER_PARSFILE Tires\\Mz\\TireMz107.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 13.74, 26.59, 38.42, 49.18, 58.84, 67.4, 74.85, 81.2\r\n1, 27.52, 53.29, 77.08, 98.77, 118.28, 135.59, 150.69, 163.58\r\n1.5, 38.52, 75, 109.07, 140.54, 169.23, 195.05, 217.91, 237.76\r\n2, 42.77, 84.07, 123.55, 160.94, 195.99, 228.45, 258.1, 284.74\r\n2.5, 40.05, 79.6, 118.43, 156.31, 192.98, 228.18, 261.6, 292.94\r\n3, 33.77, 67.76, 101.91, 136.11, 170.21, 203.99, 237.23, 269.64\r\n3.5, 26.96, 54.52, 82.71, 111.52, 140.91, 170.77, 200.97, 231.34\r\n4, 21, 42.71, 65.25, 88.66, 112.96, 138.12, 164.12, 190.86\r\n4.5, 16.15, 33.03, 50.78, 69.47, 89.15, 109.84, 131.57, 154.32\r\n5, 12.31, 25.32, 39.18, 53.96, 69.73, 86.54, 104.45, 123.47\r\n5.5, 9.27, 19.2, 29.94, 41.55, 54.11, 67.68, 82.33, 98.09\r\n6, 6.85, 14.32, 22.54, 31.58, 41.53, 52.43, 64.36, 77.37\r\n6.5, 4.9, 10.38, 16.56, 23.52, 31.32, 40.03, 49.71, 60.42\r\n7, 3.3, 7.16, 11.68, 16.92, 22.96, 29.86, 37.67, 46.45\r\n7.5, 1.99, 4.5, 7.63, 11.46, 16.04, 21.43, 27.68, 34.85\r\n8, 0.89, 2.27, 4.25, 6.89, 10.24, 14.36, 19.3, 25.11\r\n8.5, -0.04, 0.39, 1.39, 3.03, 5.34, 8.39, 12.21, 16.87\r\n9, -0.84, -1.22, -1.05, -0.28, 1.15, 3.28, 6.16, 9.83\r\n9.5, -1.52, -2.6, -3.15, -3.12, -2.46, -1.12, 0.94, 3.76\r\n10, -2.12, -3.81, -4.98, -5.59, -5.59, -4.94, -3.59, -1.51\r\n10.5, -2.64, -4.86, -6.59, -7.76, -8.33, -8.28, -7.55, -6.12\r\n11, -3.1, -5.79, -8, -9.66, -10.75, -11.23, -11.05, -10.18\r\n11.5, -3.51, -6.62, -9.25, -11.36, -12.9, -13.84, -14.14, -13.77\r\n12, -3.88, -7.36, -10.37, -12.87, -14.81, -16.17, -16.9, -16.98\r\n12.5, -4.21, -8.02, -11.38, -14.22, -16.53, -18.26, -19.38, -19.86\r\n13, -4.5, -8.62, -12.28, -15.45, -18.08, -20.14, -21.6, -22.44\r\n13.5, -4.77, -9.16, -13.1, -16.55, -19.48, -21.84, -23.62, -24.78\r\n14, -5.02, -9.65, -13.85, -17.56, -20.75, -23.39, -25.45, -26.91\r\n14.5, -5.24, -10.1, -14.53, -18.48, -21.91, -24.81, -27.13, -28.85\r\n15, -5.44, -10.52, -15.16, -19.32, -22.98, -26.1, -28.66, -30.62\r\n15.5, -5.63, -10.9, -15.73, -20.1, -23.96, -27.29, -30.06, -32.25\r\n16, -5.8, -11.25, -16.26, -20.81, -24.86, -28.38, -31.36, -33.75\r\n16.5, -5.97, -11.57, -16.75, -21.47, -25.69, -29.4, -32.55, -35.14\r\n17, -6.11, -11.87, -17.21, -22.08, -26.47, -30.34, -33.66, -36.42\r\n17.5, -6.25, -12.15, -17.63, -22.65, -27.19, -31.21, -34.69, -37.62\r\n18, -6.38, -12.41, -18.02, -23.18, -27.86, -32.02, -35.65, -38.73\r\n18.5, -6.5, -12.65, -18.39, -23.68, -28.48, -32.78, -36.55, -39.76\r\n19, -6.62, -12.88, -18.74, -24.14, -29.07, -33.49, -37.39, -40.73\r\n19.5, -6.72, -13.1, -19.06, -24.58, -29.62, -34.16, -38.17, -41.64\r\n20, -6.82, -13.3, -19.36, -24.99, -30.13, -34.78, -38.91, -42.49\r\n20.5, -6.92, -13.49, -19.65, -25.37, -30.62, -35.37, -39.6, -43.29\r\n21, -7.01, -13.67, -19.92, -25.73, -31.08, -35.92, -40.25, -44.05\r\n21.5, -7.09, -13.83, -20.18, -26.08, -31.51, -36.45, -40.87, -44.76\r\n22, -7.17, -13.99, -20.42, -26.4, -31.92, -36.94, -41.45, -45.44\r\n22.5, -7.24, -14.15, -20.64, -26.71, -32.3, -37.41, -42.01, -46.07\r\n23, -7.32, -14.29, -20.86, -27, -32.67, -37.85, -42.53, -46.68\r\n23.5, -7.38, -14.42, -21.07, -27.27, -33.02, -38.28, -43.03, -47.25\r\n24, -7.45, -14.55, -21.26, -27.54, -33.35, -38.68, -43.5, -47.8\r\n24.5, -7.51, -14.68, -21.45, -27.79, -33.66, -39.06, -43.95, -48.31\r\n25, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\n26, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 225/60 R18\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireMz107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz107.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`225/60 R18` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy107.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 276.28, 542.17, 796.11, 1037.22, 1264.9, 1478.75, 1678.46, 1863.81\r\n1, 543.78, 1067.29, 1567.45, 2042.53, 2491.36, 2913.12, 3307.21, 3673.19\r\n1.5, 794.63, 1560.03, 2291.71, 2987.17, 3644.68, 4263.02, 4841.27, 5378.78\r\n2, 1022.61, 2008.24, 2951.2, 3848.24, 4697.14, 5496.28, 6244.46, 6940.76\r\n2.5, 1223.67, 2403.99, 3534.24, 4610.54, 5630.23, 6591.31, 7492.28, 8331.97\r\n3, 1396.06, 2743.8, 4035.64, 5267.18, 6435.36, 7537.86, 8572.88, 9539\r\n3.5, 1540.13, 3028.22, 4456.04, 5818.77, 7113, 8336.12, 9486.09, 10561.24\r\n4, 1657.77, 3260.87, 4800.56, 6271.72, 7670.65, 8994.49, 10240.97, 11408.22\r\n4.5, 1751.86, 3447.27, 5077.17, 6636.17, 8120.35, 9526.68, 10852.66, 12096.26\r\n5, 1825.68, 3593.81, 5295.1, 6923.97, 8476.36, 9949.04, 11339.39, 12645.19\r\n5.5, 1882.54, 3706.94, 5463.74, 7147.24, 8753.26, 10278.46, 11720.06, 13075.75\r\n6, 1925.52, 3792.65, 5591.84, 7317.32, 8964.81, 10530.87, 12012.67, 13407.74\r\n6.5, 1957.31, 3856.21, 5687.13, 7444.25, 9123.23, 10720.57, 12233.34, 13659.03\r\n7, 1980.19, 3902.12, 5756.22, 7536.65, 9239.02, 10859.81, 12396.02, 13845.08\r\n7.5, 1996.04, 3934.07, 5804.56, 7601.65, 9320.93, 10958.85, 12512.39, 13978.92\r\n8, 2006.38, 3955.09, 5836.61, 7645.08, 9376.12, 11026.13, 12592.07, 14071.29\r\n8.5, 2012.44, 3967.57, 5855.92, 7671.64, 9410.35, 11068.44, 12642.86, 14130.95\r\n9, 2015.19, 3973.45, 5865.35, 7685.08, 9428.24, 11091.25, 12671.03, 14164.92\r\n9.5, 2015.4, 3974.24, 5867.15, 7688.35, 9433.46, 11098.89, 12681.58, 14178.84\r\n10, 2013.65, 3971.12, 5863.1, 7683.82, 9428.92, 11094.83, 12678.48, 14177.19\r\n10.5, 2010.43, 3965.04, 5854.58, 7673.31, 9416.9, 11081.77, 12664.87, 14163.51\r\n11, 2006.09, 3956.73, 5842.69, 7658.29, 9399.2, 11061.86, 12643.23, 14140.62\r\n11.5, 2000.94, 3946.76, 5828.3, 7639.9, 9377.24, 11036.8, 12615.52, 14110.74\r\n12, 1995.19, 3935.59, 5812.08, 7619.02, 9352.14, 11007.91, 12583.3, 14075.63\r\n12.5, 1989.02, 3923.55, 5794.54, 7596.36, 9324.76, 10976.24, 12547.76, 14036.68\r\n13, 1982.57, 3910.94, 5776.1, 7572.47, 9295.8, 10942.61, 12509.88, 13994.97\r\n13.5, 1975.94, 3897.96, 5757.09, 7547.77, 9265.79, 10907.67, 12470.41, 13951.37\r\n14, 1969.22, 3884.77, 5737.75, 7522.61, 9235.15, 10871.92, 12429.93, 13906.55\r\n14.5, 1962.46, 3871.51, 5718.27, 7497.23, 9204.21, 10835.75, 12388.91, 13861.05\r\n15, 1955.73, 3858.28, 5698.81, 7471.85, 9173.21, 10799.49, 12347.71, 13815.27\r\n15.5, 1949.05, 3845.15, 5679.48, 7446.61, 9142.37, 10763.35, 12306.61, 13769.55\r\n16, 1942.46, 3832.17, 5660.38, 7421.64, 9111.82, 10727.53, 12265.82, 13724.13\r\n16.5, 1935.97, 3819.4, 5641.55, 7397.02, 9081.68, 10692.16, 12225.52, 13679.2\r\n17, 1929.6, 3806.86, 5623.06, 7372.82, 9052.04, 10657.35, 12185.83, 13634.92\r\n17.5, 1923.37, 3794.57, 5604.94, 7349.1, 9022.96, 10623.17, 12146.83, 13591.38\r\n18, 1917.28, 3782.56, 5587.21, 7325.88, 8994.48, 10589.68, 12108.6, 13548.67\r\n18.5, 1911.33, 3770.83, 5569.89, 7303.18, 8966.64, 10556.93, 12071.18, 13506.85\r\n19, 1905.53, 3759.38, 5552.99, 7281.02, 8939.44, 10524.92, 12034.6, 13465.95\r\n19.5, 1899.87, 3748.23, 5536.51, 7259.41, 8912.91, 10493.68, 11998.88, 13425.99\r\n20, 1894.37, 3737.36, 5520.45, 7238.35, 8887.04, 10463.21, 11964.03, 13386.99\r\n20.5, 1889.01, 3726.78, 5504.81, 7217.83, 8861.82, 10433.51, 11930.05, 13348.95\r\n21, 1883.79, 3716.48, 5489.59, 7197.84, 8837.27, 10404.57, 11896.93, 13311.86\r\n21.5, 1878.72, 3706.46, 5474.77, 7178.39, 8813.35, 10376.38, 11864.66, 13275.71\r\n22, 1873.78, 3696.71, 5460.34, 7159.45, 8790.07, 10348.93, 11833.23, 13240.49\r\n22.5, 1868.98, 3687.23, 5446.31, 7141.02, 8767.4, 10322.2, 11802.62, 13206.18\r\n23, 1864.31, 3677.99, 5432.65, 7123.08, 8745.34, 10296.17, 11772.8, 13172.75\r\n23.5, 1859.76, 3669.01, 5419.36, 7105.62, 8723.86, 10270.83, 11743.76, 13140.19\r\n24, 1855.34, 3660.27, 5406.42, 7088.63, 8702.94, 10246.15, 11715.48, 13108.47\r\n24.5, 1851.04, 3651.76, 5393.83, 7072.08, 8682.58, 10222.12, 11687.93, 13077.57\r\n25, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\n26, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Lateral Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFy107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy107.par\r\n\r\n#BlueLink1 Tire: Lateral Force`225/60 R18` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx107.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.02, 862.81, 1783.13, 2762.04, 3794.59, 4873.05, 5988.03, 7129.14, 8285.48\r\n0.04, 1405.11, 2856.38, 4345.65, 5859.21, 7381.77, 8898.09, 10393.74, 11855.5\r\n0.06, 1683.96, 3384.43, 5089.04, 6782.93, 8451.6, 10081.79, 11661.81, 13181.59\r\n0.08, 1827.85, 3649.23, 5451.02, 7219.83, 8943.43, 10611.08, 12213.62, 13743.29\r\n0.1, 1906.98, 3792.03, 5642.2, 7445.59, 9191.77, 10871.81, 12478.17, 14004.57\r\n0.12, 1953.08, 3873.7, 5749.19, 7568.78, 9323.31, 11005.08, 12607.67, 14125.76\r\n0.14, 1980.9, 3921.81, 5810.31, 7636.48, 9392.07, 11070.27, 12665.46, 14173.03\r\n0.16, 1997.79, 3949.97, 5844.33, 7671.56, 9424.12, 11095.9, 12681.88, 14178.04\r\n0.18, 2007.75, 3965.55, 5861.32, 7686.27, 9433.43, 11097.23, 12673.18, 14157.7\r\n0.2, 2013.13, 3972.81, 5867.14, 7687.73, 9428.09, 11083.11, 12648.74, 14121.81\r\n0.22, 2015.35, 3974.42, 5865.42, 7680.34, 9413.11, 11059, 12614.36, 14076.35\r\n0.24, 2015.35, 3972.07, 5858.5, 7666.95, 9391.71, 11028.42, 12573.74, 14025.16\r\n0.26, 2013.76, 3966.92, 5847.96, 7649.47, 9366.06, 10993.69, 12529.34, 13970.72\r\n0.28, 2011.02, 3959.8, 5834.91, 7629.22, 9337.64, 10956.43, 12482.8, 13914.72\r\n0.3, 2007.45, 3951.26, 5820.11, 7607.14, 9307.51, 10917.73, 12435.27, 13858.28\r\n0.32, 2003.28, 3941.72, 5804.15, 7583.9, 9276.39, 10878.38, 12387.52, 13802.18\r\n0.34, 1998.68, 3931.51, 5787.42, 7559.98, 9244.83, 10838.92, 12340.11, 13746.92\r\n0.36, 1993.78, 3920.84, 5770.24, 7535.74, 9213.2, 10799.74, 12293.41, 13692.85\r\n0.38, 1988.68, 3909.89, 5752.83, 7511.45, 9181.77, 10761.12, 12247.67, 13640.2\r\n0.4, 1983.44, 3898.79, 5735.37, 7487.29, 9150.75, 10723.23, 12203.05, 13589.1\r\n0.42, 1978.13, 3887.65, 5717.98, 7463.4, 9120.27, 10686.22, 12159.68, 13539.63\r\n0.44, 1972.79, 3876.53, 5700.76, 7439.89, 9090.44, 10650.16, 12117.59, 13491.82\r\n0.46, 1967.46, 3865.5, 5683.77, 7416.82, 9061.31, 10615.11, 12076.84, 13445.67\r\n0.48, 1962.16, 3854.6, 5667.07, 7394.26, 9032.94, 10581.08, 12037.42, 13401.17\r\n0.5, 1956.92, 3843.87, 5650.7, 7372.23, 9005.34, 10548.1, 11999.32, 13358.28\r\n0.52, 1951.74, 3833.32, 5634.68, 7350.75, 8978.52, 10516.16, 11962.53, 13316.96\r\n0.54, 1946.64, 3822.97, 5619.03, 7329.84, 8952.5, 10485.24, 11927, 13277.16\r\n0.56, 1941.64, 3812.84, 5603.75, 7309.5, 8927.25, 10455.32, 11892.7, 13238.82\r\n0.58, 1936.72, 3802.94, 5588.86, 7289.72, 8902.77, 10426.39, 11859.61, 13201.89\r\n0.6, 1931.91, 3793.26, 5574.36, 7270.51, 8879.05, 10398.4, 11827.66, 13166.31\r\n0.62, 1927.2, 3783.82, 5560.24, 7251.85, 8856.06, 10371.34, 11796.82, 13132.02\r\n0.64, 1922.59, 3774.61, 5546.5, 7233.73, 8833.78, 10345.16, 11767.05, 13098.97\r\n0.66, 1918.09, 3765.62, 5533.13, 7216.15, 8812.19, 10319.85, 11738.3, 13067.1\r\n0.68, 1913.69, 3756.87, 5520.13, 7199.08, 8791.28, 10295.36, 11710.53, 13036.36\r\n0.7, 1909.4, 3748.34, 5507.49, 7182.5, 8771.01, 10271.67, 11683.7, 13006.7\r\n0.72, 1905.21, 3740.03, 5495.19, 7166.42, 8751.37, 10248.74, 11657.77, 12978.07\r\n0.74, 1901.12, 3731.93, 5483.24, 7150.8, 8732.33, 10226.54, 11632.7, 12950.42\r\n0.76, 1897.13, 3724.05, 5471.61, 7135.64, 8713.87, 10205.05, 11608.46, 12923.72\r\n0.78, 1893.24, 3716.37, 5460.31, 7120.91, 8695.97, 10184.23, 11585, 12897.9\r\n0.8, 1889.45, 3708.9, 5449.31, 7106.61, 8678.6, 10164.06, 11562.3, 12872.95\r\n0.82, 1885.74, 3701.61, 5438.62, 7092.72, 8661.76, 10144.52, 11540.33, 12848.81\r\n0.84, 1882.13, 3694.52, 5428.22, 7079.23, 8645.4, 10125.56, 11519.04, 12825.45\r\n0.86, 1878.61, 3687.6, 5418.09, 7066.11, 8629.53, 10107.19, 11498.41, 12802.83\r\n0.88, 1875.18, 3680.87, 5408.24, 7053.36, 8614.12, 10089.36, 11478.42, 12780.93\r\n0.9, 1871.82, 3674.31, 5398.66, 7040.96, 8599.14, 10072.05, 11459.04, 12759.71\r\n0.92, 1868.55, 3667.91, 5389.32, 7028.9, 8584.6, 10055.26, 11440.24, 12739.14\r\n0.94, 1865.36, 3661.68, 5380.23, 7017.17, 8570.46, 10038.95, 11421.99, 12719.2\r\n0.96, 1862.25, 3655.6, 5371.38, 7005.76, 8556.71, 10023.1, 11404.28, 12699.85\r\n0.98, 1859.21, 3649.67, 5362.76, 6994.65, 8543.34, 10007.7, 11387.08, 12681.07\r\n1, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\n1.02, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx107.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`225/60 R18` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`225/60 R18`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n784.532, -2.7453\r\n1569.064, -6.7216\r\n2353.596, -11.0497\r\n3138.128, -15.5865\r\n3922.66, -20.2695\r\n4707.192, -25.0638\r\n5491.724, -29.9472\r\n6276.256, -34.9047\r\n7060.788, -39.925\r\n7845.32, -45\r\n8629.852, -50.1231\r\n9414.384, -55.2891\r\n10198.916, -60.4937\r\n10983.448, -65.7334\r\n11767.98, -71.0051\r\n12552.512, -76.3065\r\n13337.044, -81.6351\r\n14121.576, -86.9892\r\n14906.108, -92.3669\r\n15690.64, -97.767\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 225/60 R18\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : CamStiff107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`225/60 R18` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 225/60 R18\r\n#Library : Tire\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : Tire109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n800 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire109.par\r\n\r\n#BlueLink9 Tire`225/60 R18` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`225/60 R18` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp112.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*CT_FX_L -6.3e-6\r\n*CT_FX_R -6.3e-6\r\n*CS_FY_L -8.3e-6\r\n*CS_FY_R -8.3e-6\r\n*CS_MZ_L -1.2e-4\r\n*CS_MZ_R -1.2e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L -3.3e-5\r\n*CI_FY_R -3.3e-5\r\n*CI_MZ_L -5e-5\r\n*CI_MZ_R -5e-5\r\n*C_LONG_L 3.6e-5\r\n*C_LONG_R 3.6e-5\r\n*C_LAT_L 9.4e-5\r\n*C_LAT_R 9.4e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 344\r\n\r\nMX_AUX_COEFFICIENT 344\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 344 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 344 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring110.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`46 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 46\r\nFS_EXT_COEFFICIENT 46\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 46\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 46 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 46 N/mm\r\n#Category:\r\n#FileID  : Spring110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring110.par\r\n\r\n#BlueLink0 Suspension: Spring`46 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`46 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Rear Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\nRear spring rate chosen for a rear ride frequency of 1.4 Hz and a rear corner weight of 380 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp112.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.` CS E-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.1\r\n*TOE_R 0.1\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive`5-Link Rear\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { 5-Link Rear } Rear 5-Link - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear 5-Link - No Dive\r\n#Category: 5-Link Rear\r\n#FileID  : Dive102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive102.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX102.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { 5-Link Rear } Rear 5-Link - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear 5-Link - Longitudinal Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusX102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX102.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Rear 5-Link - Camber Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.66479\r\n-60, 1.43877\r\n-50, 1.21143\r\n-40, 0.981031\r\n-30, 0.746032\r\n-20, 0.505036\r\n-10, 0.25676\r\n0, 0\r\n10, -0.266403\r\n20, -0.543604\r\n30, -0.832791\r\n40, -1.13524\r\n50, -1.45237\r\n60, -1.78583\r\n70, -2.13754\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { 5-Link Rear } Rear 5-Link - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Rear 5-Link - Camber Change\r\n#Category: 5-Link Rear\r\n#FileID  : Camber102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\nGeneric 5-Link rear Camber change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber102.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear 5-Link - Lateral Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { 5-Link Rear } Rear 5-Link - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear 5-Link - Lateral Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusLat102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\nGeneric 5-Link rear Lateral movement vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat102.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe102.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Rear 5-Link - Toe Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, -1.02057\r\n-60, -0.828098\r\n-50, -0.65623\r\n-40, -0.501756\r\n-30, -0.361641\r\n-20, -0.233037\r\n-10, -0.113294\r\n0, 0\r\n10, 0.108974\r\n20, 0.215401\r\n30, 0.320605\r\n40, 0.425353\r\n50, 0.529714\r\n60, 0.632927\r\n70, 0.733253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { 5-Link Rear } Rear 5-Link - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Rear 5-Link - Toe Change\r\n#Category: 5-Link Rear\r\n#FileID  : Toe102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\nGeneric 5-Link Rear Toe change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe102.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Rear Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\nGeneric 5-Link rear suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension` CS E-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`225/60 R18` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`225/60 R18` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass`CS E-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 3050\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 4250\r\nH_H 500\r\nH_CG_SU 530\r\nLX_AXLE 3050\r\nLX_CG_SU 1400\r\nM_SU 1650\r\nIXX_SU 928.1\r\nIYY_SU 2788.5\r\nIZZ_SU 3234.0\r\nIXZ_SU 0\r\nRX_SGUI 0.750\r\nRY_SGUI 1.300\r\nRZ_SGUI 1.400\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1480\r\nY_LENGTH 1880\r\n*HWC_LF 320\r\n*HWC_RF 320\r\n*HWC_LR 300\r\n*HWC_RR 300\r\n\r\nH_WC 300\r\niside 2\r\nH_WC 300\r\niaxle 1\r\niside 1\r\nH_WC 320\r\niside 2\r\nH_WC 320\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS E-Class } E-Class, Sedan Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : E-Class, Sedan Sprung Mass\r\n#Category: CS E-Class\r\n#FileID  : SprMass106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass` CS E-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`E-Class, Sedan Aero`CS E-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1525\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 3050\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS E-Class } E-Class, Sedan Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : E-Class, Sedan Aero\r\n#Category: CS E-Class\r\n#FileID  : Aero105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`E-Class, Sedan Aero` CS E-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh105.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`E-Class, Sedan`E-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 3048\r\nOBJ_Y_LENGTH 1880\r\nOBJ_Z_LENGTH 1480\r\n*DZ_V 0\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 375\r\n*WHEEL_RATIO 1.1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup111.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`E-Class, Sedan`CS E-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.25\r\n*X_REF_LENGTH 2711\r\n*Y_REF_LENGTH 1725\r\n*Z_REF_LENGTH 1400\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL128.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Body`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .6\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Body\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL128.par\r\n\r\n#BlueLink0 Animator: Shape File Link`European Sedan: Body` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL129.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Details`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Details\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL129.par\r\n\r\n#BlueLink1 Animator: Shape File Link`European Sedan: Details` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL130.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Windows`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0\r\n*SPECULAR 1\r\n*TRANSPARENCY 0.7\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.7\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Windows\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL130.par\r\n\r\n#BlueLink2 Animator: Shape File Link`European Sedan: Windows` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL131.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Interior Trim`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\interior_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Interior Trim\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Interior Trim\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL131.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Interior Trim` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL132.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Steering Wheel`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Steering Wheel\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL132.par\r\n\r\n#BlueLink4 Animator: Shape File Link`European Sedan: Steering Wheel` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL133.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Seats`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Seats\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL133\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL133.par\r\n\r\n#BlueLink5 Animator: Shape File Link`European Sedan: Seats` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL134.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Driver`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.69 0.69 0.69\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Driver\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL134\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL134.par\r\n\r\n#BlueLink13 Animator: Shape File Link`European Sedan: Driver` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nx_ref_length 2711\r\ny_ref_length 1725\r\nz_ref_length 1400\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Animator: Shape Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : StlGroup111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup111.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`E-Class, Sedan` CS E-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL151.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Brake Lights (E-Class)`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 .8 .8\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.02\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.25\r\nX_REF_LENGTH 2711\r\nY_REF_LENGTH 1725\r\nZ_REF_LENGTH 1400\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Brake Lights (E-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Brake Lights (E-Class)\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL151\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL151.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Brake Lights (E-Class)` CS European Sedan` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { E-Class Vehicles } E-Class, Sedan\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : E-Class, Sedan\r\n#Category: E-Class Vehicles\r\n#FileID  : AniVeh105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh105.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 1\r\nPMAX_SC 200\r\nENTER_PARSFILE Powertrain\\4wd\\4WD103.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine112.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`250 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.38\r\nTC_THR_REL 0.02\r\nTC_THR_APP 0.06\r\n\r\n#CheckBox0 1\r\nOPT_THROTTLE_DELAY 1\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 41.13, 126.46, 168.44, 171.86, 173.81, 174.77, 175.1, 175.18, 175.23, 175.18\r\n633, 49.35, 154.32, 232.06, 247.82, 250.35, 251.38, 251.74, 251.77, 251.77, 251.77\r\n750, 0, 145.21, 245.96, 268.1, 274.08, 276.25, 277.05, 277.12, 277.1, 277.07\r\n1107, -16.45, 117.35, 288.44, 330.1, 346.63, 352.29, 354.4, 354.59, 354.55, 354.4\r\n1463, -24.68, 78.29, 278.01, 345.45, 367.46, 377.44, 382.32, 383.45, 384.2, 391.51\r\n1820, -27.97, 42.77, 246.75, 351.59, 388.29, 402.59, 410.23, 412.31, 413.85, 424.41\r\n2177, -33.51, 16.45, 195.49, 338.42, 394.8, 427.7, 432.64, 437.57, 442.51, 453.42\r\n2533, -42.07, -10.64, 135.08, 302.54, 398.09, 443.64, 455.67, 463.99, 468.83, 477.05\r\n2890, -50.08, -25.19, 93.73, 255.06, 387.36, 448.48, 473.93, 480.34, 490.21, 498.44\r\n3247, -57.14, -36.65, 62.58, 203.53, 371.29, 444.15, 477.05, 490.21, 500.08, 509.95\r\n3603, -64.08, -46.7, 39.02, 160.4, 334.05, 430.99, 478.7, 493.5, 505.02, 514.89\r\n3960, -71.06, -56.01, 19.61, 126.98, 289.7, 413.12, 473.76, 491.86, 503.37, 509.95\r\n4317, -78.44, -65.43, 0.46, 95.46, 249.64, 394.29, 465.54, 481.99, 493.5, 503.27\r\n4673, -86.11, -74.79, -16.57, 68.44, 207.81, 366.08, 452.38, 468.83, 485.28, 493.5\r\n5030, -94.28, -84.03, -31.71, 44.85, 170.57, 330.59, 435.93, 452.38, 468.83, 477.05\r\n5387, -102.47, -93.46, -45.75, 24, 138.78, 293.42, 410.15, 426.06, 448.04, 452.77\r\n5743, -111.65, -103.3, -59.35, 4.69, 109.99, 254.69, 367.91, 393, 404.78, 409.44\r\n6100, -121.65, -113.67, -72.91, -13.57, 83.71, 217.11, 322.13, 345.48, 356.46, 360.66\r\n6500, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25\r\n6700, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 250 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 250 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine112.par\r\n\r\n#BlueLink0 Powertrain: Engine`250 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 250 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.009121\r\n0.1, 0.009121\r\n0.2, 0.009121\r\n0.3, 0.009121\r\n0.4, 0.00912\r\n0.5, 0.009112\r\n0.6, 0.009066\r\n0.7, 0.008864\r\n0.8, 0.008142\r\n0.9, 0.005941\r\n0.95, 0.00366\r\n0.99, 0.000872\r\n1.01, -0.000872\r\n1.05, -0.00366\r\n1.1, -0.005941\r\n1.2, -0.008142\r\n1.3, -0.008864\r\n1.4, -0.009066\r\n1.5, -0.009112\r\n1.6, -0.00912\r\n1.7, -0.009121\r\n1.8, -0.009121\r\n1.9, -0.009121\r\n2, -0.009121\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 250 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 250 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC104.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 250 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission`\r\n#RingCtrl0 7\r\nNGEARS 7\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.42\r\nR_GEAR_TR(1) 4.38\r\nR_GEAR_TR(2) 2.86\r\nR_GEAR_TR(3) 1.92\r\nR_GEAR_TR(4) 1.37\r\nR_GEAR_TR(5) 1.00\r\nR_GEAR_TR(6) 0.82\r\nR_GEAR_TR(7) 0.70\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nITR(7) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_F(7) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nR_EFF_TR_R(7) 0.99\r\nT_SHIFT 0.35\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift113.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 1-2 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 629\r\n0.2, 629\r\n0.8, 1233\r\n1, 1233\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 503\r\n0.4, 503\r\n0.8, 925\r\n1, 925\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 1-2 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift113.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`7-speed, 1-2 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift114.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 2-3 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 938\r\n0.2, 938\r\n0.8, 1888\r\n1, 1888\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 750\r\n0.4, 750\r\n0.8, 1416\r\n1, 1416\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 2-3 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift114.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`7-speed, 2-3 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift115.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 3-4 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1314\r\n0.2, 1314\r\n0.8, 2813\r\n1, 2813\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1051\r\n0.4, 1051\r\n0.8, 2109\r\n1, 2109\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 3-4 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift115.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`7-speed, 3-4 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift116.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 4-5 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 3942\r\n1, 3942\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 2956\r\n1, 2956\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 4-5 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift116.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`7-speed, 4-5 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift117.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 5-6 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2195\r\n0.2, 2195\r\n0.8, 5400\r\n1, 5400\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1756\r\n0.4, 1756\r\n0.8, 4050\r\n1, 4050\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 5-6 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift117.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`7-speed, 5-6 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\nENTER_PARSFILE Powertrain\\Shift\\Shift118.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 6-7 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2571\r\n0.2, 2571\r\n0.8, 6585\r\n1, 6585\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2057\r\n0.4, 2057\r\n0.8, 4939\r\n1, 4939\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 6-7 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 6-7 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift118.par\r\n\r\n#BlueLink5 Powertrain: Shift Schedule`7-speed, 6-7 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 7\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 7-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 7-Speed Transmission\r\n#Category:\r\n#FileID  : Trans104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans104.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Viscous - Gear Ratio 2.65`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_FD 2.65\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 1\r\nLOCKED_FD_K 100\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 1\r\nLOCKED_DIFF_K 100\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Viscous - Gear Ratio 2.65` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff101.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Viscous - Gear Ratio 2.65`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_RD 2.65\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff101.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Viscous - Gear Ratio 2.65` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 250 kW, 7-spd., 2.65 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 250 kW, 7-spd., 2.65 Ratio\r\n#Category:\r\n#FileID  : 4WD103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\nGeneric 250 kW powertrain with an automatic transmission.  The torque converter data has been tuned to work with the 250 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD103.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W111.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`E-Class, Sedan w/ ABS`CS E-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.15\r\nON_F_SGUI 0.1\r\nON_R_SGUI 0.1\r\nV_F_SGUI 3\r\nV_R_SGUI 3\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq107.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`350 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 350\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 350\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 350 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 350 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq107.par\r\n\r\n#BlueLink0 Brakes: Torque`350 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`350 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS E-Class } E-Class, Sedan w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : E-Class, Sedan w/ ABS\r\n#Category: CS E-Class\r\n#FileID  : Brk4W111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W111.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`E-Class, Sedan w/ ABS` CS E-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2106.par`08-02-2011`16:42:43\r\n#FullDataName Steering`E-Class, Sedan: Power R&P`CS E-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.0001\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 39.5\r\n*L2_LKPO 0\r\n*R1_LKPO 39.5\r\n*R2_LKPO 0\r\n*L1_AKPI 8.0\r\n*L2_AKPI 0\r\n*R1_AKPI 8.0\r\n*R2_AKPI 0\r\n*L1_ACAST 3.5\r\n*L2_ACAST 0\r\n*R1_ACAST 3.5\r\n*R2_ACAST 0\r\n*L1_XKPO -1.0\r\n*L2_XKPO 0\r\n*R1_XKPO -1.0\r\n*R2_XKPO 0\r\n*D_RACK_F 4\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 1\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.0001\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niside 2\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nENTER_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nRACK_TRAVEL_TABLE SPLINE\r\n-916.4942656, -86.36\r\n-867.4138828, -83.03846154\r\n-824.4560495, -79.96296296\r\n-786.3359267, -77.10714286\r\n-752.1486273, -74.44827586\r\n-721.227932, -71.96666667\r\n-693.0665246, -69.64516129\r\n-667.2677336, -67.46875\r\n-643.5147167, -65.42424242\r\n-621.549914, -63.5\r\n-601.160854, -61.68571429\r\n-582.1700533, -59.97222222\r\n-564.4276481, -58.35135135\r\n-547.8059016, -56.81578947\r\n-532.1950333, -55.35897436\r\n-517.5, -53.975\r\n-503.6379761, -52.65853659\r\n-490.5363551, -51.4047619\r\n-478.1311476, -50.20930233\r\n-466.3656834, -49.06818182\r\n-455.1895493, -47.97777778\r\n-444.557715, -46.93478261\r\n-434.4298052, -45.93617021\r\n-424.7694916, -44.97916667\r\n-415.5439804, -44.06122449\r\n-406.7235787, -43.18\r\n0, 0\r\n406.7235787, 43.18\r\n415.5439804, 44.06122449\r\n424.7694916, 44.97916667\r\n434.4298052, 45.93617021\r\n444.557715, 46.93478261\r\n455.1895493, 47.97777778\r\n466.3656834, 49.06818182\r\n478.1311476, 50.20930233\r\n490.5363551, 51.4047619\r\n503.6379761, 52.65853659\r\n517.5, 53.975\r\n532.1950333, 55.35897436\r\n547.8059016, 56.81578947\r\n564.4276481, 58.35135135\r\n582.1700533, 59.97222222\r\n601.160854, 61.68571429\r\n621.549914, 63.5\r\n643.5147167, 65.42424242\r\n667.2677336, 67.46875\r\n693.0665246, 69.64516129\r\n721.227932, 71.96666667\r\n752.1486273, 74.44827586\r\n786.3359267, 77.10714286\r\n824.4560495, 79.96296296\r\n867.4138828, 83.03846154\r\n916.4942656, 86.36\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Rack kinematics; { CS E-Class } E-Class, Sedan Rack Kinematics\r\n#Library : Steering System: Rack kinematics\r\n#DataSet : E-Class, Sedan Rack Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RackKin113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steering rack\r\n\r\nEXIT_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par\r\n\r\n#BlueLink4 Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics` CS E-Class` , Rack input to output: front\r\n\r\nD_RACK 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -64.00924761\r\n-83.03846154, -60.39496988\r\n-79.96296296, -57.20021687\r\n-77.10714286, -54.34703994\r\n-74.44827586, -51.77840772\r\n-71.96666667, -49.45080212\r\n-69.64516129, -47.32999144\r\n-67.46875, -45.38842777\r\n-65.42424242, -43.60354705\r\n-63.5, -41.95660533\r\n-61.68571429, -40.43185156\r\n-59.97222222, -39.01592124\r\n-58.35135135, -37.69738095\r\n-56.81578947, -36.46637887\r\n-55.35897436, -35.31437211\r\n-53.975, -34.23391082\r\n-52.65853659, -33.21846512\r\n-51.4047619, -32.26228482\r\n-50.20930233, -31.3602847\r\n-49.06818182, -30.5079499\r\n-47.97777778, -29.70125727\r\n-46.93478261, -28.93660959\r\n-45.93617021, -28.21078022\r\n-44.97916667, -27.52086625\r\n-44.06122449, -26.86424867\r\n-43.18, -26.23855826\r\n0, 0\r\n43.18, 21.3843292\r\n44.06122449, 21.8085708\r\n44.97916667, 22.25095273\r\n45.93617021, 22.71274374\r\n46.93478261, 23.19534249\r\n47.97777778, 23.70029582\r\n49.06818182, 24.22932041\r\n50.20930233, 24.78432852\r\n51.4047619, 25.367459\r\n52.65853659, 25.98111474\r\n53.975, 26.62800831\r\n55.35897436, 27.31121822\r\n56.81578947, 28.03425875\r\n58.35135135, 28.80116776\r\n59.97222222, 29.61661825\r\n61.68571429, 30.48606232\r\n63.5, 31.41591936\r\n65.42424242, 32.41382662\r\n67.46875, 33.48897913\r\n69.64516129, 34.65260127\r\n71.96666667, 35.91861787\r\n74.44827586, 37.30463871\r\n77.10714286, 38.83345523\r\n79.96296296, 40.53541768\r\n83.03846154, 42.45242008\r\n86.36, 44.6450584\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -44.6450584\r\n-83.03846154, -42.45242008\r\n-79.96296296, -40.53541768\r\n-77.10714286, -38.83345523\r\n-74.44827586, -37.30463871\r\n-71.96666667, -35.91861787\r\n-69.64516129, -34.65260127\r\n-67.46875, -33.48897913\r\n-65.42424242, -32.41382662\r\n-63.5, -31.41591936\r\n-61.68571429, -30.48606232\r\n-59.97222222, -29.61661825\r\n-58.35135135, -28.80116776\r\n-56.81578947, -28.03425875\r\n-55.35897436, -27.31121822\r\n-53.975, -26.62800831\r\n-52.65853659, -25.98111474\r\n-51.4047619, -25.367459\r\n-50.20930233, -24.78432852\r\n-49.06818182, -24.22932041\r\n-47.97777778, -23.70029582\r\n-46.93478261, -23.19534249\r\n-45.93617021, -22.71274374\r\n-44.97916667, -22.25095273\r\n-44.06122449, -21.8085708\r\n-43.18, -21.3843292\r\n0, 0\r\n43.18, 26.23855826\r\n44.06122449, 26.86424867\r\n44.97916667, 27.52086625\r\n45.93617021, 28.21078022\r\n46.93478261, 28.93660959\r\n47.97777778, 29.70125727\r\n49.06818182, 30.5079499\r\n50.20930233, 31.3602847\r\n51.4047619, 32.26228482\r\n52.65853659, 33.21846512\r\n53.975, 34.23391082\r\n55.35897436, 35.31437211\r\n56.81578947, 36.46637887\r\n58.35135135, 37.69738095\r\n59.97222222, 39.01592124\r\n61.68571429, 40.43185156\r\n63.5, 41.95660533\r\n65.42424242, 43.60354705\r\n67.46875, 45.38842777\r\n69.64516129, 47.32999144\r\n71.96666667, 49.45080212\r\n74.44827586, 51.77840772\r\n77.10714286, 54.34703994\r\n79.96296296, 57.20021687\r\n83.03846154, 60.39496988\r\n86.36, 64.00924761\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS E-Class } E-Class, Sedan Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : E-Class, Sedan Wheel Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RkKinAx119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics` CS E-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost102.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 1\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 2500\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -2500, -2500, -2500, -2500, -2500, -2500\r\n-15, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12, -2500, -2500, -2500, -2500, -2500, -2500\r\n-11.5, -2500, -2500, -2500, -2500, -2266.8, -2141.32\r\n-11, -2500, -2420, -2427.94, -2280.85, -1736.13, -1500.51\r\n-10.5, -2500, -2205, -2063.12, -1815.93, -1313.29, -1034.22\r\n-10, -2500, -2000, -1739.25, -1429.79, -980, -700\r\n-9.5, -2500, -1805, -1453.43, -1112.03, -720.39, -464.39\r\n-9, -2500, -1620, -1202.85, -853.22, -520.81, -301.33\r\n-8.5, -2500, -1445, -984.76, -644.8, -369.61, -190.74\r\n-8, -2500, -1280, -796.49, -479.09, -256.9, -117.44\r\n-7.5, -2500, -1125, -635.44, -349.2, -174.42, -70.08\r\n-7, -2500, -980, -499.12, -249.03, -115.3, -40.35\r\n-6.5, -2500, -845, -385.09, -173.2, -73.91, -22.31\r\n-6, -2500, -720, -291, -117.01, -45.72, -11.76\r\n-5.5, -2500, -605, -214.6, -76.39, -27.13, -5.86\r\n-5, -2500, -500, -153.73, -47.89, -15.31, -2.73\r\n-4.5, -2278.13, -405, -106.32, -28.58, -8.14, -1.18\r\n-4, -1600, -320, -70.4, -16.05, -4.01, -0.46\r\n-3.5, -1071.88, -245, -44.12, -8.34, -1.8, -0.16\r\n-3, -675, -180, -25.72, -3.92, -0.71, -0.05\r\n-2.5, -390.63, -125, -13.59, -1.6, -0.24, -0.01\r\n-2, -200, -80, -6.22, -0.54, -0.06, 0\r\n-1.5, -84.38, -45, -2.27, -0.13, -0.01, 0\r\n-1, -25, -20, -0.55, -0.02, 0, 0\r\n-0.5, -3.13, -5, -0.05, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 3.13, 5, 0.05, 0, 0, 0\r\n1, 25, 20, 0.55, 0.02, 0, 0\r\n1.5, 84.38, 45, 2.27, 0.13, 0.01, 0\r\n2, 200, 80, 6.22, 0.54, 0.06, 0\r\n2.5, 390.63, 125, 13.59, 1.6, 0.24, 0.01\r\n3, 675, 180, 25.72, 3.92, 0.71, 0.05\r\n3.5, 1071.88, 245, 44.12, 8.34, 1.8, 0.16\r\n4, 1600, 320, 70.4, 16.05, 4.01, 0.46\r\n4.5, 2278.13, 405, 106.32, 28.58, 8.14, 1.18\r\n5, 2500, 500, 153.73, 47.89, 15.31, 2.73\r\n5.5, 2500, 605, 214.6, 76.39, 27.13, 5.86\r\n6, 2500, 720, 291, 117.01, 45.72, 11.76\r\n6.5, 2500, 845, 385.09, 173.2, 73.91, 22.31\r\n7, 2500, 980, 499.12, 249.03, 115.3, 40.35\r\n7.5, 2500, 1125, 635.44, 349.2, 174.42, 70.08\r\n8, 2500, 1280, 796.49, 479.09, 256.9, 117.44\r\n8.5, 2500, 1445, 984.76, 644.8, 369.61, 190.74\r\n9, 2500, 1620, 1202.85, 853.22, 520.81, 301.33\r\n9.5, 2500, 1805, 1453.43, 1112.03, 720.39, 464.39\r\n10, 2500, 2000, 1739.25, 1429.79, 980, 700\r\n10.5, 2500, 2205, 2063.12, 1815.93, 1313.29, 1034.22\r\n11, 2500, 2420, 2427.94, 2280.85, 1736.13, 1500.51\r\n11.5, 2500, 2500, 2500, 2500, 2266.8, 2141.32\r\n12, 2500, 2500, 2500, 2500, 2500, 2500\r\n12.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n13, 2500, 2500, 2500, 2500, 2500, 2500\r\n13.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n14, 2500, 2500, 2500, 2500, 2500, 2500\r\n14.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n15, 2500, 2500, 2500, 2500, 2500, 2500\r\n16, 2500, 2500, 2500, 2500, 2500, 2500\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive High Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive High Boost Curve\r\n#Category:\r\n#FileID  : FBoost102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost102.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp104.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`E-Class, Sedan - Steering Comp.`CS E-Class\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1.7738e-07\r\n\r\nSTEER_COMP_COEFFICIENT 1.7738e-07\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; { CS E-Class } E-Class, Sedan - Steering Comp.\r\n#Library : Steering System: Compliance\r\n#DataSet : E-Class, Sedan - Steering Comp.\r\n#Category: CS E-Class\r\n#FileID  : StrCmp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp104.par\r\n\r\n#BlueLink13 Steering System: Compliance`E-Class, Sedan - Steering Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS E-Class } E-Class, Sedan: Power R&P\r\n#Library : Steering\r\n#DataSet : E-Class, Sedan: Power R&P\r\n#Category: CS E-Class\r\n#FileID  : StrSys2106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 3050 mm\r\nFront Track =  1600 mm\r\n\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2106.par\r\n\r\n#BlueLink7 Steering`E-Class, Sedan: Power R&P` CS E-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Vehicle: Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : Vehicle123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:24\r\n#VehCode Ind_Ind\r\n\r\nENTRY_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\nGeneric E-Class Sedan (Full-Size) with SLA front and 5-Link rear suspension.\r\n\r\nE-Class type vehicles include Audi A6, BMW 5-Series, Mercedes Benz E350, Lexus GS, Cadillac DTS, Chrysler 300C.\r\nEXIT_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle123.par\r\n\r\n#BlueLink2 Vehicle: Assembly`E-Class, Sedan` CS E-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc171.par`09-01-2019`07:52:20\r\n#FullDataName Procedures`chapt3_Radar Active Cruise Control: Second Car`BOOK_MPC_Procedures\r\n#CheckBox3 0\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 80\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 0\r\nSPEED 80\r\nSV_VXS 80\r\nENTER_PARSFILE Control\\Driver\\Driver105.par`08-02-2011`16:43:30\r\n#FullDataName Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview`Constant Position\r\n#RingCtrl0 0\r\n#RingCtrl1 CONSTANT\r\nLTARG_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nAV_SW_MAX_DM 1200\r\nTLAG_DM 0\r\nA_SW_MAX_DM 720\r\n*TPREV 1.5\r\n*SCALAR 0\r\nVLOW_DRIVER 10\r\n\r\n#CheckBox0 0\r\nOPT_DRIVER_MODEL 1\r\n#CheckBox1 0\r\nCREATE_PATH_OBJ off\r\n\r\nTPREV_CONSTANT 1.5\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering by the Closed-loop Driver Model; { Constant Position } No Offset, 1.5 sec. Preview\r\n#Library : Control: Steering by the Closed-loop Driver Model\r\n#DataSet : No Offset, 1.5 sec. Preview\r\n#Category: Constant Position\r\n#FileID  : Driver105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:30\r\n#VehCode Driver path follower\r\n\r\nEXIT_PARSFILE Control\\Driver\\Driver105.par\r\n\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Throttle\\Throttle102.par`08-02-2011`16:43:27\r\n#FullDataName Control: Throttle (Open Loop)`No Open-Loop Throttle`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nTHROTTLE_ENGINE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Throttle (Open Loop); No Open-Loop Throttle\r\n#Library : Control: Throttle (Open Loop)\r\n#DataSet : No Open-Loop Throttle\r\n#Category:\r\n#FileID  : Throttle102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:27\r\n#VehCode Open-loop throttle control\r\n\r\nEXIT_PARSFILE Control\\Throttle\\Throttle102.par\r\n\r\n#BlueLink29 Control: Throttle (Open Loop)`No Open-Loop Throttle` ` , Throttle\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.par`08-02-2011`16:43:22\r\n#FullDataName Road: 3D Surface (All Properties)`1200 m One Lane`Straight\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.005\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY101.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Straight`\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n100, 0, 100\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; Straight\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Straight\r\n#Category:\r\n#FileID  : RoadXY101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY101.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Straight` ` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp102.par`08-02-2011`16:43:14\r\n#FullDataName Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)`Roads\r\nNLANES 5\r\nOPTTHRESHOLD 1\r\n#MiscYellow0\r\n# 0.878 0.878 0.878, Road (One Lane), 0.2, 60, 1, -4, m, 4, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, 1, 4, m, 7.1, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, -7.1, m, -100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, 7.1, m, 100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, -0.969, -4, m, -7.1, m, , , -100, 1200, 5, , ,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.878 0.878 0.878\r\nMATERIAL(1) Road (One Lane)\r\nSPECULAR(1) 0.2\r\nSCALE(1) 60\r\nLTILES(1) 1\r\nLIN(1) -4\r\nLINUNITS(1) m\r\nLOUT(1) 4\r\nLOUTUNITS(1) m\r\nSSTART(1) -100\r\nSSTOP(1) 1200\r\nSINT(1) 5\r\nCOLOR(2) 0.878 0.878 0.878\r\nMATERIAL(2) Road Transition (Light)\r\nSPECULAR(2) 0.1\r\nSCALE(2) 60\r\nLTILES(2) 1\r\nLIN(2) 4\r\nLINUNITS(2) m\r\nLOUT(2) 7.1\r\nLOUTUNITS(2) m\r\nSSTART(2) -100\r\nSSTOP(2) 1200\r\nSINT(2) 5\r\nCOLOR(3) 0.878 0.878 0.878\r\nMATERIAL(3) Grass (Light)\r\nSPECULAR(3) 0.1\r\nSCALE(3) 60\r\nLTILES(3) 3.1\r\nLIN(3) -7.1\r\nLINUNITS(3) m\r\nLOUT(3) -100\r\nLOUTUNITS(3) m\r\nSSTART(3) -100\r\nSSTOP(3) 1200\r\nSINT(3) 5\r\nCOLOR(4) 0.878 0.878 0.878\r\nMATERIAL(4) Grass (Light)\r\nSPECULAR(4) 0.1\r\nSCALE(4) 60\r\nLTILES(4) 3.1\r\nLIN(4) 7.1\r\nLINUNITS(4) m\r\nLOUT(4) 100\r\nLOUTUNITS(4) m\r\nSSTART(4) -100\r\nSSTOP(4) 1200\r\nSINT(4) 5\r\nCOLOR(5) 0.878 0.878 0.878\r\nMATERIAL(5) Road Transition (Light)\r\nSPECULAR(5) 0.1\r\nSCALE(5) 60\r\nLTILES(5) -0.969\r\nLIN(5) -4\r\nLINUNITS(5) m\r\nLOUT(5) -7.1\r\nLOUTUNITS(5) m\r\nSSTART(5) -100\r\nSSTOP(5) 1200\r\nSINT(5) 5\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { Roads } 1200 m Road + 200 m Light Grass (One Lane)\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : 1200 m Road + 200 m Light Grass (One Lane)\r\n#Category: Roads\r\n#FileID  : RdShp102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:14\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp102.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)` Roads` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink6 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.ani`07-20-2011`03:07:16\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road102_1.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.2 0.2 0.2\r\n\r\nadd_obj Roads\\3D_Road\\Road102_2.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_3.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_4.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_5.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.ani\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { Straight } 1200 m One Lane\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : 1200 m One Lane\r\n#Category: Straight\r\n#FileID  : Road102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:22\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1200 m One Lane` Straight` , Misc.\r\n\r\nENTER_PARSFILE Animator\\Groups\\Group124.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Radar Beam Pyramid`ACC Sensor\r\nENTER_PARSFILE Animator\\Frames\\Frame188.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Not Detected)`Car Tracking\r\nADD_REFERENCE_FRAME Car Tracking Car X-Y-Z-Yaw (Radar Not Detected)\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_ROLL_NAME Roll_E\r\nSET_PITCH_NAME Pitch\r\nSET_YAW_NAME Yaw\r\nSET_OFFSET_VAR_Z 0.45\r\nSET_FRAME_VISIBLE_NAME NotDetec\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_Roll_E\r\nANI_Roll_E\r\nWRT_Pitch\r\nANI_Pitch\r\nWRT_Yaw\r\nANI_Yaw\r\nWRT_NotDetec\r\nANI_NotDetec\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Car Tracking } Car X-Y-Z-Yaw (Radar Not Detected)\r\n#Library : Animator: Reference Frame\r\n#DataSet : Car X-Y-Z-Yaw (Radar Not Detected)\r\n#Category: Car Tracking\r\n#FileID  : Frame188\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame188.par\r\n\r\n#BlueLink10 Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Not Detected)` Car Tracking` , Animator data\r\n\r\n#MiscYellow0\r\nX_LENGTH 65\r\nY_LENGTH 12.25\r\nZ_LENGTH 5\r\nDEFINE_OUTPUT NotDetec=IF_GT_0_THEN(InpAux1, 0, 1)\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL352.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Pyramid`Primitives\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\primitives\\pyramid_1m_x_1m_x_1m.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.376 0.376 0.376\r\nX_REF_LENGTH 1\r\nY_REF_LENGTH 1\r\nZ_REF_LENGTH 1\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Primitives } Pyramid\r\n#Library : Animator: Shape File Link\r\n#DataSet : Pyramid\r\n#Category: Primitives\r\n#FileID  : AniSTL352\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL352.par\r\n\r\n#BlueLink11 Animator: Shape File Link`Pyramid` Primitives` , Animator data\r\n\r\n#MiscYellow1\r\nANI_NotDetec\r\nSET_COLOR green\r\nset_transparency .3\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Animator\\Frames\\Frame189.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Detected)`Car Tracking\r\nADD_REFERENCE_FRAME Car Tracking Car X-Y-Z-Yaw (Radar Detected)\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_ROLL_NAME Roll_E\r\nSET_PITCH_NAME Pitch\r\nSET_YAW_NAME Yaw\r\nSET_OFFSET_VAR_Z 0.45\r\nSET_FRAME_VISIBLE_NAME InpAux1\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_Roll_E\r\nANI_Roll_E\r\nWRT_Pitch\r\nANI_Pitch\r\nWRT_Yaw\r\nANI_Yaw\r\nWRT_InpAux1\r\nANI_InpAux1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Car Tracking } Car X-Y-Z-Yaw (Radar Detected)\r\n#Library : Animator: Reference Frame\r\n#DataSet : Car X-Y-Z-Yaw (Radar Detected)\r\n#Category: Car Tracking\r\n#FileID  : Frame189\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame189.par\r\n\r\n#BlueLink12 Animator: Reference Frame`Car X-Y-Z-Yaw (Radar Detected)` Car Tracking` , Animator data\r\n\r\n#MiscYellow2\r\nX_LENGTH 65\r\nY_LENGTH 12.25\r\nZ_LENGTH 5\r\n#ENDMYellow\r\n\r\n#BlueLink13 Animator: Shape File Link`Pyramid` Primitives` , Animator data\r\n\r\n#MiscYellow3\r\nSET_COLOR red\r\nset_transparency .3\r\n#ENDMYellow\r\n\r\n*X_REF_LENGTH 2756\r\n*Y_REF_LENGTH 1988\r\n*Z_REF_LENGTH 1272\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { ACC Sensor } Radar Beam Pyramid\r\n#Library : Animator: Group\r\n#DataSet : Radar Beam Pyramid\r\n#Category: ACC Sensor\r\n#FileID  : Group124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nENTRY_NOTEFILE Animator\\Groups\\Group124_note.txt\r\nThis shape is used to represent a radar field.  It is attached to a reference frame and given some reference lengths for sizing purposes.\r\n\r\nYou need manually to synchronize the animation shape sizes with the actual simulation settings in the Simulink model \"Radar_Acc_CS8.mdl\").\r\n\r\nOpen the above Simulink model and double click \"Radar Sensor\" block. Then, you will see \"View Angle\" and \"Distance Range\".\r\n\r\nFor example, if \"Distance Range\" is 70 (m), you have to set X_LENGTH to 70.  If \"View Angle\" is 10 (deg), you have to set Y_LENGTH to 12.25, which can be obtained by the following hand equations:\r\n\r\nY_LENGTH = {tan(View Angle/2) * Distance Range} * 2.\r\n\r\nZ_LENGTH (height of the radar range) is not involved in the simulation. Therefore, you can adopt any number in order to show good looking animation.\r\n\r\nThis screen is set up to change the visibility of two shape, one green and one red. The color indicates that detection has occurred.\r\nEXIT_NOTEFILE Animator\\Groups\\Group124_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group124.par\r\n\r\n#BlueLink1 Animator: Group`Radar Beam Pyramid` ACC Sensor` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt3_Radar Active Cruise Control: Second Car\r\n#Library : Procedures\r\n#DataSet : chapt3_Radar Active Cruise Control: Second Car\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc171\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 07:52:20\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc171.par\r\n\r\n#BlueLink28 Procedures`chapt3_Radar Active Cruise Control: Second Car` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\nENTER_PARSFILE Runs\\Run288.par`08-30-2019`23:51:42\r\n#FullDataName CarSim Run Control`Chapter3_MPC_ACC: First Car (Ext. Sen.)`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex135.par`09-01-2019`08:50:47\r\n#FullDataName Models: Simulink`chapt3_Radar Active Cruise: First Car (Ext. Sen.)`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\\LEO_MPCACC_VLV1.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap3_MPC_AdaptiveCruiseCtrl_VLV\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch126.par`08-31-2019`10:10:49\r\n#FullDataName I/O Channels: Export`Radar Active Cruising Export (Ext. Sen.)`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Xo\r\nEXP_Yo\r\nEXP_Yaw\r\nEXP_Ax\r\n#MiscYellow0\r\n#Number of Selected Channels: 5\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Xo\r\n#CHN_NAME: Yo\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Ax\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } Radar Active Cruising Export (Ext. Sen.)\r\n#Library : I/O Channels: Export\r\n#DataSet : Radar Active Cruising Export (Ext. Sen.)\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch126\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-31-2019 10:10:49\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch126.par\r\n\r\n#BlueLink1 I/O Channels: Export`Radar Active Cruising Export (Ext. Sen.)` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_ACC_ExtSen_Car1.sim\r\n#ENDMYellow\r\n\r\nLIVE_SERVER_UPDATE_FREQ_MAX 60\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt3_Radar Active Cruise: First Car (Ext. Sen.)\r\n#Library : Models: Simulink\r\n#DataSet : chapt3_Radar Active Cruise: First Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex135\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 08:50:47\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex135.par\r\n\r\n#BlueLink12 Models: Simulink`chapt3_Radar Active Cruise: First Car (Ext. Sen.)` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera138.par`08-02-2011`16:43:53\r\n#FullDataName Animator: Camera Setup`High Front View, Road Ref. (Rr. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y -1.65\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 355.5\r\nSET_ELEVATION 20\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y -1.65\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 355.5\r\n*SET_ELEVATION 20\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 40\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } High Front View, Road Ref. (Rr. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : High Front View, Road Ref. (Rr. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:53\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera138.par\r\n\r\n#BlueLink0 Animator: Camera Setup`High Front View, Road Ref. (Rr. Facing)` Road Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 2\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 1 0.6 0\r\nFLAG_10 288\r\nID_RUN 288\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle105.par`08-02-2011`16:42:23\r\n#FullDataName Vehicle: Assembly`B-Class, Sports Car`CS B-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\nOPT_PT 2\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp107.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Front Comp.`CS B-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.611\r\n*R_SPRING_R 0.611\r\n*R_DAMPER_L 0.611\r\n*R_DAMPER_R 0.611\r\n*CT_FX_L 1.9e-6\r\n*CT_FX_R 1.9e-6\r\n*CS_FY_L -1.4e-6\r\n*CS_FY_R -1.4e-6\r\n*CS_MZ_L 6.4e-4\r\n*CS_MZ_R 6.4e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 1.4e-4\r\n*CI_FY_R 1.4e-4\r\n*CI_MZ_L -2.75e-4\r\n*CI_MZ_R -2.75e-4\r\n*C_LONG_L 1.2e-5\r\n*C_LONG_R 1.2e-5\r\n*C_LAT_L 1.6e-5\r\n*C_LAT_R 1.6e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.611\r\n*R_JOUNCE_R 0.611\r\n*R_REBOUND_L 0.611\r\n*R_REBOUND_R 0.611\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb104.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+25 mm / -55 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n24, 0\r\n25, 0\r\n26, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-56, -10000\r\n-55, 0\r\n-54, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +25 mm / -55 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +25 mm / -55 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb104.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+25 mm / -55 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.611\r\nCT_FX_COEFFICIENT 1.9e-6\r\nCS_FY_COEFFICIENT -1.4e-6\r\nCS_MZ_COEFFICIENT 6.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.4e-4\r\nCI_MZ_COEFFICIENT -2.75e-4\r\nC_LONG_COEFFICIENT 1.2e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.611\r\nCMP_RSTOP_COEFFICIENT 0.611\r\nENTER_PARSFILE Suspensions\\Springs\\Spring107.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`130.5 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 130.5\r\nFS_EXT_COEFFICIENT 130.5\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 130.5\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 130.5 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 130.5 N/mm\r\n#Category:\r\n#FileID  : Spring107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring107.par\r\n\r\n#BlueLink0 Suspension: Spring`130.5 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+25 mm / -55 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.611\r\nCT_FX_COEFFICIENT 1.9e-6\r\nCS_FY_COEFFICIENT -1.4e-6\r\nCS_MZ_COEFFICIENT 6.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.4e-4\r\nCI_MZ_COEFFICIENT -2.75e-4\r\nC_LONG_COEFFICIENT 1.2e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.611\r\nCMP_RSTOP_COEFFICIENT 0.611\r\n#BlueLink3 Suspension: Spring`130.5 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS B-Class } B-Class, Sports Car - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : B-Class, Sports Car - Front Comp.\r\n#Category: CS B-Class\r\n#FileID  : SuspCmp107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp107_note.txt\r\nFront spring rate chosen for a front ride frequency of 2.2 Hz and a front corner weight of 255 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp107_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp107.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Front Comp.` CS B-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin107.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`B-Class, Sports Car - Front Suspension`CS B-Class\r\niside 1\r\nL_TRACK 1480\r\nY_CL_SUSP 0\r\nM_US 60\r\n*IW_L 0.6\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.6\r\n*JNC_DESIGN_R 0\r\n*TOE_L -0.2\r\n*TOE_R -0.2\r\n*CAMBER_L -1\r\n*CAMBER_R -1\r\nR_US_STR 0.7\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -1\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -1\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS B-Class } B-Class, Sports Car - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : B-Class, Sports Car - Front Suspension\r\n#Category: CS B-Class\r\n#FileID  : IndKin107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin107_note.txt\r\nGeneric SLA front suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin107_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin107.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`B-Class, Sports Car - Front Suspension` CS B-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire104.par`08-02-2011`16:42:32\r\n#FullDataName Tire`205/45 R17`Performance Tires\r\nX_LENGTH 308\r\nZ_LENGTH 308\r\nY_LENGTH 205\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup101.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Sports Car`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL101.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Sports Car Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Sports Car Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Sports Car Tire\r\n#Category: Tires\r\n#FileID  : AniSTL101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL101.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Sports Car Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL102.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Sports Car Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Sports Car Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Sports Car Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL102.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Sports Car Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL103.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Sports Car Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Sports Car Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Sports Car Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL103.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Sports Car Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Sports Car\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Sports Car\r\n#Category: Tires\r\n#FileID  : StlGroup101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup101.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Sports Car` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 205\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet109.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 550 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 550; units = kg;\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 550 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 550 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet109.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 550 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 298\r\nR0 308\r\nFZ_TIRE_COEFFICIENT 242\r\nFZ_MAX 100000\r\nIT 1.1\r\nL_RELAX_X 28\r\nL_RELAX_Y 610\r\nVLOW_ALPHA 5\r\nRR_C 0.004\r\nRR_V 0.000025\r\nRR_FX 1\r\nOPT_TIRE_COMB 0\r\nENTER_PARSFILE Tires\\Mz\\TireMz104.par`08-02-2011`16:42:31\r\n#FullDataName Tire: Aligning Moment`205/45 R17`Performance Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1348.41, 2696.83, 4045.24, 5393.66, 6742.07, 8090.49, 9438.9, 10787.32\r\n0.5, 20.97, 40.83, 59.32, 76.25, 91.51, 105, 116.65, 126.42\r\n1, 32.44, 63.59, 93.15, 120.91, 146.66, 170.24, 191.46, 210.15\r\n1.5, 32.09, 63.43, 93.92, 123.47, 151.96, 179.23, 205.11, 229.37\r\n2, 26.48, 52.68, 78.68, 104.53, 130.23, 155.75, 181.01, 205.88\r\n2.5, 20.56, 41.09, 61.75, 82.65, 103.87, 125.46, 147.46, 169.87\r\n3, 15.73, 31.55, 47.63, 64.11, 81.1, 98.69, 116.97, 136\r\n3.5, 12.02, 24.19, 36.67, 49.6, 63.09, 77.26, 92.21, 108.04\r\n4, 9.18, 18.54, 28.24, 38.38, 49.1, 60.5, 72.69, 85.78\r\n4.5, 6.99, 14.17, 21.68, 29.64, 38.17, 47.35, 57.29, 68.12\r\n5, 5.26, 10.71, 16.5, 22.73, 29.49, 36.89, 45.02, 53.98\r\n5.5, 3.86, 7.93, 12.33, 17.15, 22.49, 28.44, 35.09, 42.53\r\n6, 2.73, 5.66, 8.92, 12.59, 16.76, 21.52, 26.94, 33.12\r\n6.5, 1.78, 3.77, 6.09, 8.8, 12, 15.76, 20.16, 25.28\r\n7, 0.99, 2.19, 3.7, 5.61, 7.99, 10.91, 14.44, 18.67\r\n7.5, 0.31, 0.83, 1.67, 2.89, 4.57, 6.78, 9.57, 13.03\r\n8, -0.27, -0.33, -0.08, 0.55, 1.63, 3.22, 5.38, 8.18\r\n8.5, -0.78, -1.34, -1.6, -1.48, -0.93, 0.12, 1.73, 3.96\r\n9, -1.23, -2.23, -2.93, -3.27, -3.17, -2.59, -1.46, 0.26\r\n9.5, -1.62, -3.02, -4.11, -4.84, -5.15, -4.98, -4.28, -3\r\n10, -1.97, -3.71, -5.16, -6.24, -6.91, -7.11, -6.79, -5.9\r\n10.5, -2.28, -4.34, -6.1, -7.49, -8.48, -9.01, -9.04, -8.5\r\n11, -2.56, -4.9, -6.94, -8.62, -9.9, -10.73, -11.05, -10.83\r\n11.5, -2.82, -5.41, -7.7, -9.64, -11.18, -12.28, -12.88, -12.94\r\n12, -3.05, -5.87, -8.39, -10.57, -12.34, -13.68, -14.53, -14.86\r\n12.5, -3.26, -6.29, -9.03, -11.41, -13.41, -14.96, -16.04, -16.6\r\n13, -3.45, -6.68, -9.6, -12.19, -14.38, -16.14, -17.43, -18.2\r\n13.5, -3.63, -7.03, -10.14, -12.9, -15.27, -17.22, -18.7, -19.67\r\n14, -3.79, -7.36, -10.63, -13.55, -16.09, -18.21, -19.87, -21.02\r\n14.5, -3.95, -7.66, -11.08, -14.16, -16.86, -19.13, -20.95, -22.27\r\n15, -4.09, -7.94, -11.5, -14.72, -17.56, -19.98, -21.95, -23.43\r\n15.5, -4.22, -8.2, -11.89, -15.25, -18.22, -20.78, -22.89, -24.51\r\n16, -4.34, -8.45, -12.26, -15.73, -18.83, -21.52, -23.76, -25.51\r\n16.5, -4.45, -8.67, -12.6, -16.19, -19.4, -22.21, -24.57, -26.45\r\n17, -4.56, -8.89, -12.92, -16.62, -19.94, -22.85, -25.33, -27.33\r\n17.5, -4.66, -9.09, -13.22, -17.02, -20.44, -23.46, -26.04, -28.16\r\n18, -4.75, -9.27, -13.5, -17.39, -20.91, -24.03, -26.71, -28.93\r\n18.5, -4.84, -9.45, -13.77, -17.75, -21.36, -24.57, -27.35, -29.66\r\n19, -4.93, -9.62, -14.02, -18.08, -21.78, -25.08, -27.94, -30.35\r\n19.5, -5.01, -9.78, -14.26, -18.4, -22.18, -25.56, -28.51, -31\r\n20, -5.08, -9.93, -14.48, -18.7, -22.55, -26.01, -29.04, -31.61\r\n20.5, -5.15, -10.07, -14.69, -18.98, -22.91, -26.44, -29.54, -32.2\r\n21, -5.22, -10.2, -14.89, -19.25, -23.25, -26.85, -30.02, -32.75\r\n21.5, -5.28, -10.33, -15.09, -19.51, -23.57, -27.23, -30.48, -33.27\r\n22, -5.34, -10.45, -15.27, -19.75, -23.87, -27.6, -30.91, -33.77\r\n22.5, -5.4, -10.57, -15.44, -19.98, -24.16, -27.95, -31.32, -34.25\r\n23, -5.46, -10.68, -15.61, -20.21, -24.44, -28.29, -31.72, -34.7\r\n23.5, -5.51, -10.79, -15.77, -20.42, -24.71, -28.61, -32.09, -35.14\r\n24, -5.56, -10.89, -15.92, -20.62, -24.96, -28.91, -32.45, -35.55\r\n24.5, -5.61, -10.98, -16.06, -20.81, -25.2, -29.21, -32.8, -35.95\r\n25, -5.66, -11.08, -16.2, -21, -25.44, -29.49, -33.13, -36.33\r\n26, -5.66, -11.08, -16.2, -21, -25.44, -29.49, -33.13, -36.33\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Performance Tires } 205/45 R17\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : TireMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:31\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz104.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`205/45 R17` Performance Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy104.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`205/45 R17`Performance Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1348.41, 2696.83, 4045.24, 5393.66, 6742.07, 8090.49, 9438.9, 10787.32\r\n0.5, 235.28, 461.71, 677.96, 883.33, 1077.34, 1259.69, 1430.17, 1588.65\r\n1, 459.85, 902.69, 1325.96, 1728.27, 2108.7, 2466.63, 2801.63, 3113.42\r\n1.5, 664.55, 1305.19, 1918.27, 2501.78, 3054.38, 3575.14, 4063.37, 4518.63\r\n2, 843.04, 1656.81, 2436.8, 3180.46, 3886.07, 4552.37, 5178.44, 5763.61\r\n2.5, 992.35, 1951.66, 2872.76, 3752.69, 4589.37, 5381.28, 6127.24, 6826.37\r\n3, 1112.66, 2189.91, 3226.13, 4218.04, 5163.29, 6060.13, 6907.13, 7703.2\r\n3.5, 1206.45, 2376.23, 3503.43, 4584.55, 5617.06, 6598.99, 7528.73, 8405\r\n4, 1277.48, 2517.8, 3714.91, 4865.19, 5965.95, 7015.09, 8010.85, 8951.79\r\n4.5, 1329.85, 2622.56, 3872.05, 5074.6, 6227.48, 7328.45, 8375.68, 9367.59\r\n5, 1367.43, 2698.06, 3985.81, 5226.96, 6418.7, 7558.77, 8645.25, 9676.49\r\n5.5, 1393.59, 2750.87, 4065.83, 5334.73, 6554.78, 7723.66, 8839.44, 9900.39\r\n6, 1411.08, 2786.41, 4120.06, 5408.32, 6648.39, 7837.97, 8975.08, 10058\r\n6.5, 1422.06, 2808.96, 4154.83, 5456.01, 6709.73, 7913.68, 9065.89, 10164.61\r\n7, 1428.23, 2821.85, 4175.08, 5484.32, 6746.8, 7960.25, 9122.7, 10232.41\r\n7.5, 1430.84, 2827.6, 4184.57, 5498.2, 6765.77, 7985.01, 9153.97, 10270.91\r\n8, 1430.86, 2828.12, 4186.16, 5501.46, 6771.33, 7993.55, 9166.16, 10287.45\r\n8.5, 1429.01, 2824.85, 4181.99, 5496.94, 6767.06, 7990.12, 9164.22, 10287.65\r\n9, 1425.81, 2818.87, 4173.67, 5486.8, 6755.63, 7977.96, 9151.92, 10275.8\r\n9.5, 1421.68, 2810.96, 4162.41, 5472.64, 6739.06, 7959.5, 9132.08, 10255.15\r\n10, 1416.91, 2801.73, 4149.1, 5455.67, 6718.87, 7936.55, 9106.87, 10228.17\r\n10.5, 1411.71, 2791.62, 4134.42, 5436.8, 6696.2, 7910.51, 9077.89, 10196.72\r\n11, 1406.24, 2780.96, 4118.87, 5416.69, 6671.9, 7882.4, 9046.38, 10162.21\r\n11.5, 1400.64, 2769.99, 4102.81, 5395.85, 6646.61, 7853, 9013.24, 10125.72\r\n12, 1394.99, 2758.89, 4086.53, 5374.66, 6620.8, 7822.9, 8979.18, 10088.05\r\n12.5, 1389.34, 2747.8, 4070.22, 5353.39, 6594.84, 7792.53, 8944.71, 10049.79\r\n13, 1383.76, 2736.81, 4054.04, 5332.23, 6568.97, 7762.21, 8910.21, 10011.41\r\n13.5, 1378.27, 2725.99, 4038.08, 5311.35, 6543.39, 7732.17, 8875.97, 9973.24\r\n14, 1372.89, 2715.4, 4022.43, 5290.85, 6518.23, 7702.59, 8842.2, 9935.52\r\n14.5, 1367.65, 2705.05, 4007.14, 5270.79, 6493.6, 7673.59, 8809.05, 9898.44\r\n15, 1362.55, 2694.98, 3992.24, 5251.23, 6469.56, 7645.25, 8776.61, 9862.12\r\n15.5, 1357.6, 2685.19, 3977.76, 5232.2, 6446.15, 7617.64, 8744.97, 9826.65\r\n16, 1352.8, 2675.7, 3963.7, 5213.72, 6423.39, 7590.77, 8714.17, 9792.09\r\n16.5, 1348.16, 2666.5, 3950.08, 5195.79, 6401.31, 7564.68, 8684.23, 9758.47\r\n17, 1343.66, 2657.6, 3936.88, 5178.42, 6379.9, 7539.37, 8655.16, 9725.81\r\n17.5, 1339.31, 2648.99, 3924.1, 5161.6, 6359.15, 7514.83, 8626.97, 9694.11\r\n18, 1335.1, 2640.66, 3911.74, 5145.32, 6339.06, 7491.05, 8599.64, 9663.36\r\n18.5, 1331.04, 2632.6, 3899.79, 5129.57, 6319.61, 7468.03, 8573.16, 9633.55\r\n19, 1327.11, 2624.81, 3888.23, 5114.32, 6300.79, 7445.73, 8547.51, 9604.66\r\n19.5, 1323.31, 2617.28, 3877.04, 5099.57, 6282.57, 7424.15, 8522.66, 9576.67\r\n20, 1319.64, 2610, 3866.23, 5085.31, 6264.94, 7403.25, 8498.6, 9549.55\r\n20.5, 1316.09, 2602.96, 3855.76, 5071.5, 6247.88, 7383.02, 8475.29, 9523.28\r\n21, 1312.65, 2596.14, 3845.64, 5058.14, 6231.36, 7363.42, 8452.72, 9497.82\r\n21.5, 1309.33, 2589.55, 3835.84, 5045.2, 6215.36, 7344.44, 8430.85, 9473.15\r\n22, 1306.11, 2583.17, 3826.35, 5032.67, 6199.86, 7326.06, 8409.65, 9449.23\r\n22.5, 1303, 2576.99, 3817.16, 5020.53, 6184.85, 7308.24, 8389.11, 9426.04\r\n23, 1299.98, 2571, 3808.26, 5008.78, 6170.3, 7290.97, 8369.19, 9403.55\r\n23.5, 1297.06, 2565.2, 3799.63, 4997.38, 6156.19, 7274.22, 8349.87, 9381.73\r\n24, 1294.23, 2559.58, 3791.26, 4986.32, 6142.51, 7257.97, 8331.12, 9360.56\r\n24.5, 1291.48, 2554.12, 3783.15, 4975.6, 6129.23, 7242.2, 8312.93, 9340.01\r\n25, 1288.81, 2548.83, 3775.27, 4965.19, 6116.34, 7226.89, 8295.26, 9320.05\r\n26, 1288.81, 2548.83, 3775.27, 4965.19, 6116.34, 7226.89, 8295.26, 9320.05\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Performance Tires } 205/45 R17\r\n#Library : Tire: Lateral Force\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : TireFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy104.par\r\n\r\n#BlueLink1 Tire: Lateral Force`205/45 R17` Performance Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx104.par`08-02-2011`16:42:27\r\n#FullDataName Tire: Longitudinal Force`205/45 R17`Performance Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1348.41, 2696.83, 4045.24, 5393.66, 6742.07, 8090.49, 9438.9, 10787.32\r\n0.02, 704.77, 1395.6, 2070.06, 2726.61, 3363.99, 3981.14, 4577.1, 5151\r\n0.04, 1097.08, 2170.78, 3217.1, 4233.54, 5218.12, 6169.21, 7085.36, 7965.25\r\n0.06, 1274.84, 2521.28, 3734.55, 4911.69, 6050.38, 7148.75, 8205.15, 9218.1\r\n0.08, 1357.64, 2684.31, 3974.85, 5226.07, 6435.52, 7601.19, 8721.37, 9794.51\r\n0.1, 1398.39, 2764.43, 4092.76, 5380.06, 6623.83, 7822.01, 8972.83, 10074.75\r\n0.12, 1418.63, 2804.15, 4151.09, 5456.06, 6716.52, 7930.39, 9095.89, 10211.48\r\n0.14, 1427.94, 2822.34, 4177.66, 5490.49, 6758.29, 7978.95, 9150.69, 10271.97\r\n0.16, 1431.01, 2828.24, 4186.14, 5501.28, 6771.1, 7993.51, 9166.72, 10289.19\r\n0.18, 1430.36, 2826.84, 4183.86, 5498.01, 6766.72, 7987.9, 9159.78, 10280.81\r\n0.2, 1427.44, 2820.98, 4175.04, 5486.2, 6751.9, 7970.06, 9138.92, 10256.94\r\n0.22, 1423.14, 2812.4, 4162.21, 5469.17, 6730.72, 7944.79, 9109.62, 10223.69\r\n0.24, 1418, 2802.18, 4146.98, 5449.02, 6705.74, 7915.08, 9075.3, 10184.87\r\n0.26, 1412.37, 2791.01, 4130.38, 5427.09, 6678.6, 7882.87, 9038.16, 10142.94\r\n0.28, 1406.5, 2779.36, 4113.07, 5404.25, 6650.38, 7849.42, 8999.63, 10099.51\r\n0.3, 1400.53, 2767.53, 4095.51, 5381.1, 6621.8, 7815.57, 8960.68, 10055.64\r\n0.32, 1394.57, 2755.73, 4078, 5358.03, 6593.33, 7781.86, 8921.92, 10012.02\r\n0.34, 1388.69, 2744.08, 4060.73, 5335.29, 6565.28, 7748.68, 8883.79, 9969.12\r\n0.36, 1382.93, 2732.69, 4043.83, 5313.05, 6537.86, 7716.26, 8846.54, 9927.24\r\n0.38, 1377.32, 2721.59, 4027.4, 5291.42, 6511.21, 7684.75, 8810.35, 9886.56\r\n0.4, 1371.89, 2710.84, 4011.47, 5270.47, 6485.39, 7654.23, 8775.32, 9847.2\r\n0.42, 1366.63, 2700.45, 3996.07, 5250.22, 6460.45, 7624.77, 8741.5, 9809.2\r\n0.44, 1361.56, 2690.43, 3981.23, 5230.7, 6436.41, 7596.36, 8708.91, 9772.6\r\n0.46, 1356.68, 2680.77, 3966.93, 5211.9, 6413.26, 7569.02, 8677.55, 9737.38\r\n0.48, 1351.98, 2671.47, 3953.17, 5193.81, 6390.99, 7542.73, 8647.39, 9703.52\r\n0.5, 1347.45, 2662.53, 3939.93, 5176.42, 6369.58, 7517.46, 8618.4, 9670.98\r\n0.52, 1343.1, 2653.94, 3927.21, 5159.7, 6349, 7493.17, 8590.55, 9639.72\r\n0.54, 1338.92, 2645.68, 3914.98, 5143.64, 6329.23, 7469.83, 8563.79, 9609.69\r\n0.56, 1334.9, 2637.73, 3903.23, 5128.2, 6310.23, 7447.41, 8538.08, 9580.85\r\n0.58, 1331.04, 2630.1, 3891.93, 5113.35, 6291.97, 7425.86, 8513.38, 9553.13\r\n0.6, 1327.32, 2622.75, 3881.07, 5099.08, 6274.41, 7405.14, 8489.64, 9526.5\r\n0.62, 1323.75, 2615.69, 3870.62, 5085.36, 6257.53, 7385.22, 8466.81, 9500.89\r\n0.64, 1320.31, 2608.89, 3860.56, 5072.15, 6241.29, 7366.06, 8444.86, 9476.27\r\n0.66, 1316.99, 2602.35, 3850.89, 5059.45, 6225.66, 7347.63, 8423.73, 9452.58\r\n0.68, 1313.81, 2596.05, 3841.57, 5047.21, 6210.62, 7329.88, 8403.4, 9429.78\r\n0.7, 1310.73, 2589.98, 3832.6, 5035.43, 6196.13, 7312.79, 8383.82, 9407.82\r\n0.72, 1307.77, 2584.14, 3823.95, 5024.07, 6182.16, 7296.32, 8364.95, 9386.67\r\n0.74, 1304.92, 2578.5, 3815.61, 5013.12, 6168.7, 7280.45, 8346.77, 9366.28\r\n0.76, 1302.16, 2573.06, 3807.57, 5002.57, 6155.72, 7265.14, 8329.23, 9346.62\r\n0.78, 1299.5, 2567.81, 3799.8, 4992.38, 6143.19, 7250.37, 8312.31, 9327.65\r\n0.8, 1296.94, 2562.74, 3792.31, 4982.54, 6131.1, 7236.11, 8295.98, 9309.34\r\n0.82, 1294.46, 2557.84, 3785.07, 4973.03, 6119.41, 7222.33, 8280.21, 9291.66\r\n0.84, 1292.06, 2553.11, 3778.08, 4963.85, 6108.13, 7209.02, 8264.97, 9274.58\r\n0.86, 1289.74, 2548.54, 3771.31, 4954.97, 6097.21, 7196.16, 8250.23, 9258.07\r\n0.88, 1287.5, 2544.11, 3764.77, 4946.39, 6086.66, 7183.72, 8235.98, 9242.1\r\n0.9, 1285.33, 2539.83, 3758.44, 4938.08, 6076.44, 7171.68, 8222.2, 9226.65\r\n0.92, 1283.23, 2535.68, 3752.31, 4930.03, 6066.56, 7160.02, 8208.85, 9211.69\r\n0.94, 1281.2, 2531.66, 3746.37, 4922.24, 6056.98, 7148.73, 8195.93, 9197.21\r\n0.96, 1279.22, 2527.77, 3740.62, 4914.69, 6047.7, 7137.79, 8183.41, 9183.17\r\n0.98, 1277.31, 2524, 3735.04, 4907.37, 6038.71, 7127.19, 8171.27, 9169.57\r\n1, 1275.46, 2520.34, 3729.63, 4900.27, 6029.98, 7116.91, 8159.5, 9156.39\r\n1.02, 1275.46, 2520.34, 3729.63, 4900.27, 6029.98, 7116.91, 8159.5, 9156.39\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Performance Tires } 205/45 R17\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : TireFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:27\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx104.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`205/45 R17` Performance Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff104.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`205/45 R17`Performance Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n539.36575, -3.948\r\n1078.7315, -7.9302\r\n1618.09725, -11.9585\r\n2157.463, -16.0411\r\n2696.82875, -20.1848\r\n3236.1945, -24.3954\r\n3775.56025, -28.6777\r\n4314.926, -33.0365\r\n4854.29175, -37.476\r\n5393.6575, -42\r\n5933.02325, -46.6122\r\n6472.389, -51.316\r\n7011.75475, -56.1146\r\n7551.1205, -61.0112\r\n8090.48625, -66.0087\r\n8629.852, -71.1099\r\n9169.21775, -76.3176\r\n9708.5835, -81.6343\r\n10247.94925, -87.0626\r\n10787.315, -92.6048\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Performance Tires } 205/45 R17\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : CamStiff104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff104.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`205/45 R17` Performance Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Performance Tires } 205/45 R17\r\n#Library : Tire\r\n#DataSet : 205/45 R17\r\n#Category: Performance Tires\r\n#FileID  : Tire104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire104_note.txt\r\n550 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire104_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire104.par\r\n\r\n#BlueLink9 Tire`205/45 R17` Performance Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`205/45 R17` Performance Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp108.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Rear Comp.`CS B-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*CT_FX_L -6.3e-6\r\n*CT_FX_R -6.3e-6\r\n*CS_FY_L -8.3e-6\r\n*CS_FY_R -8.3e-6\r\n*CS_MZ_L -1.2e-4\r\n*CS_MZ_R -1.2e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L -3.2e-4\r\n*CI_FY_R -3.2e-4\r\n*CI_MZ_L -5.0e-4\r\n*CI_MZ_R -5.0e-4\r\n*C_LONG_L 3.6e-5\r\n*C_LONG_R 3.6e-5\r\n*C_LAT_L 9.4e-6\r\n*C_LAT_R 9.4e-6\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.2e-4\r\nCI_MZ_COEFFICIENT -5.0e-4\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-6\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring108.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`91 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 91\r\nFS_EXT_COEFFICIENT 91\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 91\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 91 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 91 N/mm\r\n#Category:\r\n#FileID  : Spring108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring108.par\r\n\r\n#BlueLink0 Suspension: Spring`91 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.2e-4\r\nCI_MZ_COEFFICIENT -5.0e-4\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-6\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`91 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS B-Class } B-Class, Sports Car - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : B-Class, Sports Car - Rear Comp.\r\n#Category: CS B-Class\r\n#FileID  : SuspCmp108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp108_note.txt\r\nRear spring rate chosen for a rear ride frequency of 2.4 Hz and a rear corner weight of 255 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp108_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp108.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`B-Class, Sports Car - Rear Comp.` CS B-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin108.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`B-Class, Sports Car - Rear Suspension`CS B-Class\r\niside 1\r\nL_TRACK 1485\r\nY_CL_SUSP 0\r\nM_US 60\r\n*IW_L 0.6\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.6\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.2\r\n*TOE_R 0.2\r\n*CAMBER_L -1.5\r\n*CAMBER_R -1.5\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Left wheel dive (caster change)\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Left wheel X\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Left wheel camber\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Left wheel lateral (-Y)\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Left wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -1.5\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Right wheel toe\r\n\r\nIW 0.6\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -1.5\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS B-Class } B-Class, Sports Car - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : B-Class, Sports Car - Rear Suspension\r\n#Category: CS B-Class\r\n#FileID  : IndKin108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin108_note.txt\r\nGeneric 5-Link rear suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin108_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin108.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`B-Class, Sports Car - Rear Suspension` CS B-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`205/45 R17` Performance Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`205/45 R17` Performance Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass104.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`B-Class, Sports Car Sprung Mass`CS B-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 2330\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 2860\r\nH_H 380\r\nH_CG_SU 375\r\nLX_AXLE 2330\r\nLX_CG_SU 1165\r\nM_SU 1020\r\nIXX_SU 308.6\r\nIYY_SU 1020.0\r\nIZZ_SU 1020.0\r\nIXZ_SU 0\r\nRX_SGUI 0.550\r\nRY_SGUI 1.000\r\nRZ_SGUI 1.000\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1200\r\nY_LENGTH 1750\r\n*HWC_LF 330\r\n*HWC_RF 330\r\n*HWC_LR 310\r\n*HWC_RR 310\r\nL_FRAME 2400\r\nW_FRAME 1000\r\nX_NODE 1100\r\nK_FRAME 3000\r\nC_FRAME 100\r\nX_ENG 1000\r\n\r\nH_WC 310\r\niside 2\r\nH_WC 310\r\niaxle 1\r\niside 1\r\nH_WC 330\r\niside 2\r\nH_WC 330\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS B-Class } B-Class, Sports Car Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : B-Class, Sports Car Sprung Mass\r\n#Category: CS B-Class\r\n#FileID  : SprMass104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass104.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`B-Class, Sports Car Sprung Mass` CS B-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`B-Class, Sports Car Aero`CS B-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1165\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 2330\r\nAREA_AERO 1.6\r\nD_AIR 1.206\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS B-Class } B-Class, Sports Car Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : B-Class, Sports Car Aero\r\n#Category: CS B-Class\r\n#FileID  : Aero104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero104_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero104.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`B-Class, Sports Car Aero` CS B-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh104.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`B-Class, Sports Car`B-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 2390\r\nOBJ_Y_LENGTH 1700\r\nOBJ_Z_LENGTH 1175\r\n*DZ_V 50\r\n*LAT_WC 1575\r\n*LAT_WC_2 1575\r\n*HWC 350\r\n*WHEEL_RATIO 1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.7875\r\nSET_OFFSET_Z 0.3325\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.7875\r\nSET_OFFSET_Z 0.3325\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -2.39\r\nSET_OFFSET_Y 0.7875\r\nSET_OFFSET_Z 0.3325\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1\r\nSET_SCALE_Z 1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -2.39\r\nSET_OFFSET_Y -0.7875\r\nSET_OFFSET_Z 0.3325\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT 0.05\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup110.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Shape Assembly`B-Class, Convertible`CS B-Class\r\n*COLOR .36 .117 .117\r\n*SCALE_X 1\r\n*SCALE_Y 0.95\r\n*SCALE_Z 1\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.270\r\n*X_REF_LENGTH 2390\r\n*Y_REF_LENGTH 1700\r\n*Z_REF_LENGTH 1175\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 1\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL145.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Body`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0.8\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Body\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL145\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL145.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Conv.: Body` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nENTER_PARSFILE Animator\\STL\\AniSTL146.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Details`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_details.obj\r\n#ENDMYellow\r\n\r\n*SPECULAR 1\r\n*TRANSPARENCY 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 1\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Details\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL146\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL146.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Conv.: Details` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nENTER_PARSFILE Animator\\STL\\AniSTL356.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Windows`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_Window.obj\r\n#ENDMYellow\r\n\r\n*SPECULAR 1\r\n*TRANSPARENCY 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 1\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Windows\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL356\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL356.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Conv.: Windows` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nENTER_PARSFILE Animator\\STL\\AniSTL147.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Driver`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\driver.obj\r\n#ENDMYellow\r\n\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Driver\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL147\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL147.par\r\n\r\n#BlueLink13 Animator: Shape File Link`Conv.: Driver` CS Sports Car` , Shape File\r\n\r\nset_scale_x 1\r\nset_scale_y 0.95\r\nset_scale_z 1\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.270\r\nx_ref_length 2390\r\ny_ref_length 1700\r\nz_ref_length 1175\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS B-Class } B-Class, Convertible\r\n#Library : Animator: Shape Assembly\r\n#DataSet : B-Class, Convertible\r\n#Category: CS B-Class\r\n#FileID  : StlGroup110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup110.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`B-Class, Convertible` CS B-Class` , Vehicle body\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL148.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`Conv.: Brake Lights`CS Sports Car\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\conv\\Conv_brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 0.95\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.01\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.270\r\nX_REF_LENGTH 2390\r\nY_REF_LENGTH 1700\r\nZ_REF_LENGTH 1175\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS Sports Car } Conv.: Brake Lights\r\n#Library : Animator: Shape File Link\r\n#DataSet : Conv.: Brake Lights\r\n#Category: CS Sports Car\r\n#FileID  : AniSTL148\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL148.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Conv.: Brake Lights` CS Sports Car` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { B-Class Vehicles } B-Class, Sports Car\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : B-Class, Sports Car\r\n#Category: B-Class Vehicles\r\n#FileID  : AniVeh104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh104_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh104_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh104.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`B-Class, Sports Car` B-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 1\r\nPMAX_SC 125\r\nENTER_PARSFILE Powertrain\\Rwd\\RWD101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Rear-Wheel Drive`125 kW, 6-spd., 4.1 Ratio`\r\n\r\nOPT_PT 2\r\n\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine109.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`125 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.16\r\n\r\n#CheckBox0 0\r\nOPT_THROTTLE_DELAY 0\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 20.63, 63.42, 84.48, 86.19, 87.17, 87.65, 87.82, 87.86, 87.88, 87.86\r\n633, 24.75, 77.39, 116.38, 124.29, 125.56, 126.07, 126.25, 126.27, 126.27, 126.27\r\n750, 0, 72.82, 123.35, 134.46, 137.46, 138.54, 138.94, 138.98, 138.97, 138.96\r\n1107, -8.25, 58.85, 144.66, 165.55, 173.84, 176.68, 177.74, 177.84, 177.81, 177.74\r\n1463, -12.38, 39.26, 139.43, 173.25, 184.29, 189.29, 191.74, 192.31, 192.68, 196.35\r\n1820, -14.03, 21.45, 123.75, 176.33, 194.74, 201.9, 205.74, 206.78, 207.55, 212.85\r\n2177, -16.81, 8.25, 98.04, 169.73, 198, 214.5, 216.98, 219.45, 221.93, 227.4\r\n2533, -21.1, -5.34, 67.75, 151.73, 199.65, 222.5, 228.53, 232.7, 235.13, 239.25\r\n2890, -25.11, -12.63, 47.01, 127.92, 194.27, 224.92, 237.69, 240.9, 245.85, 249.98\r\n3247, -28.65, -18.38, 31.39, 102.07, 186.21, 222.75, 239.25, 245.85, 250.8, 255.75\r\n3603, -32.14, -23.42, 19.57, 80.44, 167.53, 216.15, 240.08, 247.5, 253.28, 258.23\r\n3960, -35.64, -28.09, 9.84, 63.68, 145.29, 207.19, 237.6, 246.68, 252.45, 255.75\r\n4317, -39.34, -32.81, 0.23, 47.88, 125.2, 197.75, 233.48, 241.73, 247.5, 252.4\r\n4673, -43.19, -37.51, -8.31, 34.33, 104.22, 183.59, 226.88, 235.13, 243.38, 247.5\r\n5030, -47.28, -42.14, -15.9, 22.49, 85.54, 165.8, 218.63, 226.88, 235.13, 239.25\r\n5387, -51.39, -46.87, -22.94, 12.04, 69.6, 147.15, 205.7, 213.68, 224.7, 227.07\r\n5743, -55.99, -51.8, -29.76, 2.35, 55.16, 127.73, 184.51, 197.1, 203.01, 205.34\r\n6100, -61.01, -57.01, -36.57, -6.8, 41.98, 108.88, 161.55, 173.27, 178.77, 180.88\r\n6500, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83, -66.83\r\n6700, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65, -67.65\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 125 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 125 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine109.par\r\n\r\n#BlueLink0 Powertrain: Engine`125 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 125 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.006425\r\n0.1, 0.006425\r\n0.2, 0.006425\r\n0.3, 0.006425\r\n0.4, 0.006424\r\n0.5, 0.006419\r\n0.6, 0.006386\r\n0.7, 0.006243\r\n0.8, 0.005735\r\n0.9, 0.004185\r\n0.95, 0.002578\r\n0.99, 0.000614\r\n1.01, -0.000614\r\n1.05, -0.002578\r\n1.1, -0.004185\r\n1.2, -0.005735\r\n1.3, -0.006243\r\n1.4, -0.006386\r\n1.5, -0.006419\r\n1.6, -0.006424\r\n1.7, -0.006425\r\n1.8, -0.006425\r\n1.9, -0.006425\r\n2, -0.006425\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 125 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 125 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC101.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 125 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission`\r\n#RingCtrl0 6\r\nNGEARS 6\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.168\r\nR_GEAR_TR(1) 3.538\r\nR_GEAR_TR(2) 2.06\r\nR_GEAR_TR(3) 1.404\r\nR_GEAR_TR(4) 1.00\r\nR_GEAR_TR(5) 0.713\r\nR_GEAR_TR(6) 0.582\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nT_SHIFT 0.25\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift101.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 1-2 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 874\r\n0.2, 874\r\n0.8, 1653\r\n1, 1653\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 699\r\n0.4, 699\r\n0.8, 1240\r\n1, 1240\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 1-2 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift101.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`6-speed, 1-2 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift102.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 2-3 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1282\r\n0.2, 1282\r\n0.8, 2840\r\n1, 2840\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1026\r\n0.4, 1026\r\n0.8, 2130\r\n1, 2130\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 2-3 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift102.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`6-speed, 2-3 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift103.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 3-4 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 4167\r\n1, 4167\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 3125\r\n1, 3125\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 3-4 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift103.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`6-speed, 3-4 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift104.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 4-5 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2525\r\n0.2, 2525\r\n0.8, 5850\r\n1, 5850\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2020\r\n0.4, 2020\r\n0.8, 4388\r\n1, 4388\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 4-5 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift104.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`6-speed, 4-5 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift105.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 5-6 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 3093\r\n0.2, 3093\r\n0.8, 8205\r\n1, 8205\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2474\r\n0.4, 2474\r\n0.8, 6154\r\n1, 6154\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 5-6 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift105.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`6-speed, 5-6 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 6-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 6-Speed Transmission\r\n#Category:\r\n#FileID  : Trans101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans101.par\r\n\r\n#BlueLink9 Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Viscous - Gear Ratio 4.1`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_RD 4.1\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Viscous - Gear Ratio 4.1\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Viscous - Gear Ratio 4.1\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff102.par\r\n\r\n#BlueLink3 Powertrain: Rear Differential`Viscous - Gear Ratio 4.1` CS Rear Differentials` , Differential\r\n\r\n\r\nIDIFF 2\r\n#BlueLink5 Powertrain: Rear Differential`Viscous - Gear Ratio 4.1` CS Rear Differentials` , Differential\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear-Wheel Drive; 125 kW, 6-spd., 4.1 Ratio\r\n#Library : Powertrain: Rear-Wheel Drive\r\n#DataSet : 125 kW, 6-spd., 4.1 Ratio\r\n#Category:\r\n#FileID  : RWD101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode RWD\r\n\r\nENTRY_NOTEFILE Powertrain\\Rwd\\RWD101_note.txt\r\nGeneric 125 kW powertrain with an automatic transmission.  The torque converter data has been tuned to work with the 125 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\Rwd\\RWD101_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\Rwd\\RWD101.par\r\n\r\n#BlueLink4 Powertrain: Rear-Wheel Drive`125 kW, 6-spd., 4.1 Ratio` ` , Rear-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W104.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`B-Class, Sports Car w/ ABS`CS B-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.2\r\nON_F_SGUI 0.09\r\nON_R_SGUI 0.1\r\nV_F_SGUI 2\r\nV_R_SGUI 2\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq102.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`200 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 200\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 200\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 200 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 200 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq102.par\r\n\r\n#BlueLink0 Brakes: Torque`200 N-m/MPa` ` , Left front\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.09\r\nABS_VMIN 2\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`200 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq108.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`100 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 100\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 100\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 100 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 100 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq108.par\r\n\r\n#BlueLink2 Brakes: Torque`100 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.2\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 2\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`100 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS B-Class } B-Class, Sports Car w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : B-Class, Sports Car w/ ABS\r\n#Category: CS B-Class\r\n#FileID  : Brk4W104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W104.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`B-Class, Sports Car w/ ABS` CS B-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2104.par`08-02-2011`16:42:43\r\n#FullDataName Steering`B-Class, Sports Car: Power, R&P`CS B-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.0001\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 39.5\r\n*L2_LKPO 0\r\n*R1_LKPO 39.5\r\n*R2_LKPO 0\r\n*L1_AKPI 8.0\r\n*L2_AKPI 0\r\n*R1_AKPI 8.0\r\n*R2_AKPI 0\r\n*L1_ACAST 3.5\r\n*L2_ACAST 0\r\n*R1_ACAST 3.5\r\n*R2_ACAST 0\r\n*L1_XKPO -1.0\r\n*L2_XKPO 0\r\n*R1_XKPO -1.0\r\n*R2_XKPO 0\r\n*CF_F 40\r\n*D_RACK_F 4\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.0001\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niside 2\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 40/360\r\nD_RACK 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx116.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`B-Class, Sports Car Wheel Kinematics`CS B-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-60, -48.84\r\n-57.6, -46.24\r\n-55.2, -43.71\r\n-52.8, -41.25\r\n-50.4, -38.86\r\n-48, -36.52\r\n-45.6, -34.25\r\n-43.2, -32.04\r\n-40.8, -29.88\r\n-38.4, -27.78\r\n-36, -25.73\r\n-33.6, -23.74\r\n-31.2, -21.78\r\n-28.8, -19.88\r\n-26.4, -18.02\r\n-24, -16.2\r\n-21.6, -14.43\r\n-19.2, -12.69\r\n-16.8, -10.99\r\n-14.4, -9.33\r\n-12, -7.7\r\n-9.6, -6.1\r\n-7.2, -4.53\r\n-4.8, -3\r\n-2.4, -1.49\r\n0, 0\r\n2.4, 1.46\r\n4.8, 2.9\r\n7.2, 4.32\r\n9.6, 5.72\r\n12, 7.1\r\n14.4, 8.46\r\n16.8, 9.81\r\n19.2, 11.15\r\n21.6, 12.47\r\n24, 13.78\r\n26.4, 15.09\r\n28.8, 16.39\r\n31.2, 17.68\r\n33.6, 18.97\r\n36, 20.26\r\n38.4, 21.54\r\n40.8, 22.83\r\n43.2, 24.12\r\n45.6, 25.42\r\n48, 26.73\r\n50.4, 28.05\r\n52.8, 29.39\r\n55.2, 30.74\r\n57.6, 32.12\r\n60, 33.53\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-60, -33.53\r\n-57.6, -32.12\r\n-55.2, -30.74\r\n-52.8, -29.39\r\n-50.4, -28.05\r\n-48, -26.73\r\n-45.6, -25.42\r\n-43.2, -24.12\r\n-40.8, -22.83\r\n-38.4, -21.54\r\n-36, -20.26\r\n-33.6, -18.97\r\n-31.2, -17.68\r\n-28.8, -16.39\r\n-26.4, -15.09\r\n-24, -13.78\r\n-21.6, -12.47\r\n-19.2, -11.15\r\n-16.8, -9.81\r\n-14.4, -8.46\r\n-12, -7.1\r\n-9.6, -5.72\r\n-7.2, -4.32\r\n-4.8, -2.9\r\n-2.4, -1.46\r\n0, 0\r\n2.4, 1.49\r\n4.8, 3\r\n7.2, 4.53\r\n9.6, 6.1\r\n12, 7.7\r\n14.4, 9.33\r\n16.8, 10.99\r\n19.2, 12.69\r\n21.6, 14.43\r\n24, 16.2\r\n26.4, 18.02\r\n28.8, 19.88\r\n31.2, 21.78\r\n33.6, 23.74\r\n36, 25.73\r\n38.4, 27.78\r\n40.8, 29.88\r\n43.2, 32.04\r\n45.6, 34.25\r\n48, 36.52\r\n50.4, 38.86\r\n52.8, 41.25\r\n55.2, 43.71\r\n57.6, 46.24\r\n60, 48.84\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS B-Class } B-Class, Sports Car Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : B-Class, Sports Car Wheel Kinematics\r\n#Category: CS B-Class\r\n#FileID  : RkKinAx116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx116.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`B-Class, Sports Car Wheel Kinematics` CS B-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive Low Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 1250\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -1250, -1250, -1250, -1250, -1250, -1250\r\n-15, -1250, -1250, -1250, -1250, -1250, -1250\r\n-14.5, -1250, -1250, -1250, -1250, -1250, -1250\r\n-14, -1250, -1250, -1250, -1250, -1250, -1250\r\n-13.5, -1250, -1250, -1250, -1250, -1250, -1250\r\n-13, -1250, -1250, -1250, -1250, -1250, -1250\r\n-12.5, -1250, -1250, -1250, -1250, -1250, -1250\r\n-12, -1250, -1250, -1250, -1250, -1250, -1250\r\n-11.5, -1250, -1250, -1250, -1250, -1133.4, -1070.66\r\n-11, -1250, -1210, -1213.97, -1140.425, -868.065, -750.255\r\n-10.5, -1250, -1102.5, -1031.56, -907.965, -656.645, -517.11\r\n-10, -1250, -1000, -869.625, -714.895, -490, -350\r\n-9.5, -1250, -902.5, -726.715, -556.015, -360.195, -232.195\r\n-9, -1250, -810, -601.425, -426.61, -260.405, -150.665\r\n-8.5, -1250, -722.5, -492.38, -322.4, -184.805, -95.37\r\n-8, -1250, -640, -398.245, -239.545, -128.45, -58.72\r\n-7.5, -1250, -562.5, -317.72, -174.6, -87.21, -35.04\r\n-7, -1250, -490, -249.56, -124.515, -57.65, -20.175\r\n-6.5, -1250, -422.5, -192.545, -86.6, -36.955, -11.155\r\n-6, -1250, -360, -145.5, -58.505, -22.86, -5.88\r\n-5.5, -1250, -302.5, -107.3, -38.195, -13.565, -2.93\r\n-5, -1250, -250, -76.865, -23.945, -7.655, -1.365\r\n-4.5, -1139.065, -202.5, -53.16, -14.29, -4.07, -0.59\r\n-4, -800, -160, -35.2, -8.025, -2.005, -0.23\r\n-3.5, -535.94, -122.5, -22.06, -4.17, -0.9, -0.08\r\n-3, -337.5, -90, -12.86, -1.96, -0.355, -0.025\r\n-2.5, -195.315, -62.5, -6.795, -0.8, -0.12, -0.005\r\n-2, -100, -40, -3.11, -0.27, -0.03, 0\r\n-1.5, -42.19, -22.5, -1.135, -0.065, -0.005, 0\r\n-1, -12.5, -10, -0.275, -0.01, 0, 0\r\n-0.5, -1.565, -2.5, -0.025, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 1.565, 2.5, 0.025, 0, 0, 0\r\n1, 12.5, 10, 0.275, 0.01, 0, 0\r\n1.5, 42.19, 22.5, 1.135, 0.065, 0.005, 0\r\n2, 100, 40, 3.11, 0.27, 0.03, 0\r\n2.5, 195.315, 62.5, 6.795, 0.8, 0.12, 0.005\r\n3, 337.5, 90, 12.86, 1.96, 0.355, 0.025\r\n3.5, 535.94, 122.5, 22.06, 4.17, 0.9, 0.08\r\n4, 800, 160, 35.2, 8.025, 2.005, 0.23\r\n4.5, 1139.065, 202.5, 53.16, 14.29, 4.07, 0.59\r\n5, 1250, 250, 76.865, 23.945, 7.655, 1.365\r\n5.5, 1250, 302.5, 107.3, 38.195, 13.565, 2.93\r\n6, 1250, 360, 145.5, 58.505, 22.86, 5.88\r\n6.5, 1250, 422.5, 192.545, 86.6, 36.955, 11.155\r\n7, 1250, 490, 249.56, 124.515, 57.65, 20.175\r\n7.5, 1250, 562.5, 317.72, 174.6, 87.21, 35.04\r\n8, 1250, 640, 398.245, 239.545, 128.45, 58.72\r\n8.5, 1250, 722.5, 492.38, 322.4, 184.805, 95.37\r\n9, 1250, 810, 601.425, 426.61, 260.405, 150.665\r\n9.5, 1250, 902.5, 726.715, 556.015, 360.195, 232.195\r\n10, 1250, 1000, 869.625, 714.895, 490, 350\r\n10.5, 1250, 1102.5, 1031.56, 907.965, 656.645, 517.11\r\n11, 1250, 1210, 1213.97, 1140.425, 868.065, 750.255\r\n11.5, 1250, 1250, 1250, 1250, 1133.4, 1070.66\r\n12, 1250, 1250, 1250, 1250, 1250, 1250\r\n12.5, 1250, 1250, 1250, 1250, 1250, 1250\r\n13, 1250, 1250, 1250, 1250, 1250, 1250\r\n13.5, 1250, 1250, 1250, 1250, 1250, 1250\r\n14, 1250, 1250, 1250, 1250, 1250, 1250\r\n14.5, 1250, 1250, 1250, 1250, 1250, 1250\r\n15, 1250, 1250, 1250, 1250, 1250, 1250\r\n16, 1250, 1250, 1250, 1250, 1250, 1250\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive Low Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive Low Boost Curve\r\n#Category:\r\n#FileID  : FBoost101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost101.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive Low Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp103.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`B-Class, Sports Car - Steering Comp.`CS B-Class\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 7.0e-07\r\n\r\nSTEER_COMP_COEFFICIENT 7.0e-07\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; { CS B-Class } B-Class, Sports Car - Steering Comp.\r\n#Library : Steering System: Compliance\r\n#DataSet : B-Class, Sports Car - Steering Comp.\r\n#Category: CS B-Class\r\n#FileID  : StrCmp103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp103.par\r\n\r\n#BlueLink13 Steering System: Compliance`B-Class, Sports Car - Steering Comp.` CS B-Class` , Front compliance\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS B-Class } B-Class, Sports Car: Power, R&P\r\n#Library : Steering\r\n#DataSet : B-Class, Sports Car: Power, R&P\r\n#Category: CS B-Class\r\n#FileID  : StrSys2104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2104_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 2330 mm\r\nFront Track =  1480 mm\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2104_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2104.par\r\n\r\n#BlueLink7 Steering`B-Class, Sports Car: Power, R&P` CS B-Class` , Steering system\r\n\r\n*IMAGE_FIT_MODE 1\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`B-Class, Sports Car` B-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS B-Class } B-Class, Sports Car\r\n#Library : Vehicle: Assembly\r\n#DataSet : B-Class, Sports Car\r\n#Category: CS B-Class\r\n#FileID  : Vehicle105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:23\r\n#VehCode Ind_Ind\r\n\r\nENTRY_NOTEFILE Vehicles\\Assembly\\Vehicle105_note.txt\r\nGeneric B-Class Sports Car with SLA front and 5-Link rear suspension.\r\n\r\nB-Class type vehicles include Audi TT, BMW Z4, Mercedes Benz SLK, Honda S2000, and Mazda MX-5.\r\nEXIT_NOTEFILE Vehicles\\Assembly\\Vehicle105_note.txt\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle105.par\r\n\r\n#BlueLink2 Vehicle: Assembly`B-Class, Sports Car` CS B-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc172.par`09-01-2019`07:52:03\r\n#FullDataName Procedures`chapt3_Radar Active Cruise Control: First Car`BOOK_MPC_Procedures\r\n#CheckBox3 0\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 80\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 81\r\nOPT_DIRECTION 1\r\nOpt_SC 3\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\nENTER_PARSFILE Control\\Speed_s\\SpdSta106.par`08-31-2019`20:05:01\r\n#FullDataName Control: Speed (Closed Loop) vs. Station`Sensor Target Vehicle Speed LEO-define`Sensor Target Vehicle\r\nOPT_SC 3\r\n#RingCtrl0 LINEAR_FLAT\r\n#RadioCtrl0 0\r\n\r\nSPEED_KI 0.75\r\nSPEED_KP 0.5\r\nOPT_VMIN -1\r\nBK_PERF_SC 0.16\r\nFPD_PERF_SC 0.1\r\n\r\n#CheckBox0 1\r\nOPT_BK_SC 1\r\n#CheckBox1 0\r\nOPT_SC_ENGINE_BRAKING 0\r\n\r\n#DiagramOne0\r\nSPEED_STATION_TABLE LINEAR_FLAT\r\n0, 80\r\n100, 105\r\n130, 105\r\n180, 90\r\n200, 80\r\n275, 80\r\n325, 90\r\n405, 105\r\n470, 105\r\n530, 85\r\n540, 80\r\n615, 80\r\n715, 105\r\n745, 105\r\n795, 90\r\n815, 80\r\n890, 80\r\n940, 90\r\n1020, 105\r\n1040, 105\r\n1100, 80\r\n1160, 5\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Control: Speed (Closed Loop) vs. Station; { Sensor Target Vehicle } Sensor Target Vehicle Speed LEO-define\r\n#Library : Control: Speed (Closed Loop) vs. Station\r\n#DataSet : Sensor Target Vehicle Speed LEO-define\r\n#Category: Sensor Target Vehicle\r\n#FileID  : SpdSta106\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-31-2019 20:05:01\r\n#VehCode Speed vs. station\r\n\r\nEXIT_PARSFILE Control\\Speed_s\\SpdSta106.par\r\n\r\n#BlueLink32 Control: Speed (Closed Loop) vs. Station`Sensor Target Vehicle Speed LEO-define` Sensor Target Vehicle` , Speed vs. station\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1200 m One Lane` Straight` , Misc.\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt3_Radar Active Cruise Control: First Car\r\n#Library : Procedures\r\n#DataSet : chapt3_Radar Active Cruise Control: First Car\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc172\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 07:52:03\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc172.par\r\n\r\n#BlueLink28 Procedures`chapt3_Radar Active Cruise Control: First Car` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n#BlueLink23 CarSim Run Control`Chapter3_MPC_ACC: Second Car (Ext. Sen.)` BOOK_MPC_Examples` , Overlay run or ERD file\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`B-Class, Sports Car` B-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter3_MPC_ACC: First Car (Ext. Sen.) <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter3_MPC_ACC: First Car (Ext. Sen.)\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter3_MPC_ACC: First Car (Ext. Sen.)\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter3_MPC_ACC: First Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run288\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 23:51:42\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run288.par\r\n\r\n#BlueLink23 CarSim Run Control`Chapter3_MPC_ACC: First Car (Ext. Sen.)` BOOK_MPC_Examples` , Overlay run or ERD file\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter3_MPC_ACC: Second Car (Ext. Sen.) <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter3_MPC_ACC: Second Car (Ext. Sen.)\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter3_MPC_ACC: Second Car (Ext. Sen.)\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter3_MPC_ACC: Second Car (Ext. Sen.)\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run286\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 09:12:01\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run286.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/LEO_MPCACC_VLV1.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"LEO_MPCACC_VLV1\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.46\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    1\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      2\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [750.0, 233.0, 1073.0, 738.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t3\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[1023.0, 561.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[-54.166666666666316, 31.199999999999989]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Fri Dec 16 13:40:57 2016\"\r\n  Creator\t\t  \"admin\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sun Sep 01 11:24:35 2019\"\r\n  RTWModifiedTimeStamp\t  489237158\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:46>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"disabled\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    6\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"LEO_MPCACC_VLV1\"\r\n    overrideMode_\t    [0.0]\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"LEO_MPCACC_VLV1\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      []\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      7\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  8\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"40\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"auto\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"Dataset\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    8\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    Cell\t\t    \"UseSpecifiedMinMax\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  128\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"EnableAllAsError\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"none\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    15\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    Cell\t\t    \"PortableWordSizes\"\r\n\t    Cell\t\t    \"GenerateWebview\"\r\n\t    Cell\t\t    \"GenerateCodeMetricsReport\"\r\n\t    Cell\t\t    \"GenerateCodeReplacementReport\"\r\n\t    Cell\t\t    \"GenerateErtSFunction\"\r\n\t    Cell\t\t    \"CreateSILPILBlock\"\r\n\t    Cell\t\t    \"CodeExecutionProfiling\"\r\n\t    Cell\t\t    \"CodeProfilingSaveOptions\"\r\n\t    Cell\t\t    \"CodeProfilingInstrumentation\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      16\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t23\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"InsertPolySpaceComments\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"MATLABFcnDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InternalIdentifier\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"CustomSymbolStrUtil\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t15\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns on\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      off\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  18\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 260, 130, 1340, 770 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    7\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    19\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      X0\t\t      \"0\"\r\n      InheritSampleTime\t      off\r\n      LinearizeMemory\t      off\r\n      LinearizeAsDelay\t      off\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Inputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      UseBusObject\t      off\r\n      BusObject\t\t      \"BusObject\"\r\n      NonVirtualBus\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"LEO_MPCACC_VLV1\"\r\n    Location\t\t    [750, 233, 1823, 971]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"18\"\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"12\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [90, 335, 95, 395]\r\n      ZOrder\t\t      21\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"black\"\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[3 6]\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"Ego Vehicle\"\r\n      SID\t\t      \"14\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [235, 204, 335, 266]\r\n      ZOrder\t\t      33\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i2_64\"\r\n      SIMFILE\t\t      \"LEO_MPC_ACC_ExtSen_Car2.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"Leading Vehicle\"\r\n      SID\t\t      \"1\"\r\n      Ports\t\t      [0, 1]\r\n      Position\t\t      [175, 79, 275, 141]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"LEO_MPC_ACC_ExtSen_Car1.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      Name\t\t      \"Memory1\"\r\n      SID\t\t      \"9\"\r\n      Position\t\t      [145, 219, 175, 251]\r\n      ZOrder\t\t      9\r\n      ShowName\t\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux1\"\r\n      SID\t\t      \"18\"\r\n      Ports\t\t      [2, 1]\r\n      Position\t\t      [385, 91, 395, 169]\r\n      ZOrder\t\t      37\r\n      ShowName\t\t      off\r\n      Inputs\t\t      \"2\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function Host vehicle Ctrl\"\r\n      SID\t\t      \"10\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [225, 325, 525, 405]\r\n      ZOrder\t\t      13\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_ACC_HostVehicleCtrl1\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"13\"\r\n      Position\t\t      [25, 365, 60, 395]\r\n      ZOrder\t\t      32\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"11\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [90, 425, 150, 455]\r\n      ZOrder\t\t      20\r\n      BlockMirror\t      on\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      17\r\n      SrcBlock\t\t      \"S-Function Host vehicle Ctrl\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-40, 0]\r\n      Branch {\r\n\tZOrder\t\t\t54\r\n\tPoints\t\t\t[0, 75]\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t53\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      25\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-9, 0; 0, -115]\r\n      DstBlock\t\t      \"Memory1\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      26\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      37\r\n      SrcBlock\t\t      \"Memory1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Ego Vehicle\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      42\r\n      SrcBlock\t\t      \"Ego Vehicle\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [18, 0; 0, -85]\r\n      DstBlock\t\t      \"Mux1\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      ZOrder\t\t      52\r\n      SrcBlock\t\t      \"Mux1\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [140, 0]\r\n      DstBlock\t\t      \"S-Function Host vehicle Ctrl\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      47\r\n      SrcBlock\t\t      \"Leading Vehicle\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Mux1\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/LEO_MPC_ACC_ExtSen_Car1.sim",
    "content": "SIMFILE\r\nINPUT C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run288_all.par\r\nECHO C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run288_echo.par\r\nFINAL C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run288_end.par\r\nLOGFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run288_log.txt\r\nERDFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run288.erd\r\nDLLFILE C:\\Program Files (x86)\\CarSim810_Prog\\Programs\\Solvers\\Default64\\i_i.dll\r\nEND\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/LEO_MPC_ACC_ExtSen_Car2.sim",
    "content": "SIMFILE\r\nINPUT C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run286_all.par\r\nECHO C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run286_echo.par\r\nFINAL C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run286_end.par\r\nLOGFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run286_log.txt\r\nERDFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run286.erd\r\nDLLFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Extensions\\Simulink\\Multi_Vehicle\\i_i2_64.dll\r\nEND\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/MPC_HostVehicleController_CVXGEN_CTHW.m",
    "content": "function [vars, status] = MPC_HostVehicleController_CVXGEN_CTHW(kesi_host, Ah, Avl_des, Xmin_host, Xmax_host, thw)\r\n% Input:\r\n% kesi_host = [dr_vl; Vr_vl; EgoV.Vh; EgoV.acc ]\r\n% Avl_des  virtual vehicle optimal control \r\n% Ah: EgoV.acc\r\n% Xmin_host=[Dsafe;     0; 0;       0];\r\n% Xmax_host=[10000;     0; Vlimits; 0];  \r\n% \r\n% Self-defined parameters:\r\n% Ts--control period\r\n% dumax--limits of jerk\r\n% umax--the max of acceleration\r\n% umin--the max of deceleration\r\n% \r\n% Output:\r\n% status.converged: 1-converge, 0-nonconverge \r\n% vars.u_0, vars.u{i}: optimized control\r\n% vars.x{i}: predicted states\r\n%\r\n%Constant Time-Headway = thw*Vh+r; r:constant\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT  \r\n%---------------------------------------------------------------%\r\n\r\n%****Step(1): longitudinal vehilce model-one step delay******************%\r\nTs  = 0.05; % 50ms\r\nTs2 = Ts*Ts;\r\ntao = 0.1; %0.5\r\nA =  [1     Ts  0   -Ts2/2;\r\n      0     1   0   -Ts;\r\n      0     0   1   Ts;\r\n      0     0   0   1-Ts/tao ];\r\nB1 = [0;        0;     0;      Ts/tao]; \r\nB2 = [Ts2/2;    Ts;    0;      0]; \r\nC =[1  0   -thw     0];\r\nH =[1 0 0 0;\r\n    0 0 1 0];\r\n\r\n% end  \r\n%****Step(2): Constraints and bounds*************************************%\r\ndumax   = 5; % limits of jerk\r\numax    = 1.5; % the max of acceleration\r\numin    = -5;% the max of deceleration\r\n\r\n%****Step(3): Weighting coeffcients**************************************%\r\nQ = 10;\r\nR = 0.1;\r\nS = 0.5;\r\n\r\n%****Step(4): MPC formulation;CVXGEN solver *****************************%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    settings.resid_tol  = 1e-1;\r\n    settings.eps        = 1e1;\r\n    \r\n    params.x_0     = kesi_host;\r\n    params.ahm     = Ah; % Ah\r\n    params.avlp    = Avl_des; % Avl_des\r\n    \r\n    params.An      = A;\r\n    params.B1      = B1;\r\n    params.B2      = B2;\r\n    params.C       = C;\r\n    \r\n    params.Q   = Q;\r\n    params.R    = R;    \r\n    params.S    = S;   \r\n    params.r    = 15;%1.5; \r\n    \r\n    params.dumax   = dumax;    \r\n    params.umax    = umax;\r\n    params.umin    = umin;    \r\n\r\n    params.H        = H;   \r\n    params.Xmin     = Xmin_host;\r\n    params.Xmax     = Xmax_host;\r\n    \r\n    [vars, status] = csolve_CTHW(params, settings);\r\n    \r\nend\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/Main_ACC_HostVehicleCtrl1.m",
    "content": "function [sys,x0,str,ts] =Main_ACC_HostVehicleCtrl1(t,x,u,flag)\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 4;  %ģɢ״̬ĸ,ʵûõֵ,ֻʾɢģ\r\nsizes.NumOutputs     = 9;  %S\r\nsizes.NumInputs      = 10; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\nglobal E_gradient;\r\n    E_gradient = [0.904837418035960;\r\n        0.818730753077982;\r\n        0.740818220681718;\r\n        0.670320046035639;\r\n        0.606530659712633;\r\n        0.548811636094026;\r\n        0.496585303791409;\r\n        0.449328964117222;\r\n        0.406569659740599;\r\n        0.367879441171442;\r\n        0.332871083698080;\r\n        0.301194211912202;\r\n        0.272531793034013;\r\n        0.246596963941606;\r\n        0.223130160148430;\r\n        0.201896517994655;\r\n        0.182683524052735;\r\n        0.165298888221587;\r\n        0.149568619222635;\r\n        0.135335283236613;\r\n        0.122456428252982;\r\n        0.110803158362334;\r\n        0.100258843722804;\r\n        0.0907179532894125;\r\n        0.0820849986238988;\r\n        0.0742735782143339;\r\n        0.0672055127397498;\r\n        0.0608100626252180;\r\n        0.0550232200564072;\r\n        0.0497870683678639];\r\n\r\nglobal MPCParameters; \r\n    MPCParameters.Np      = 30;% predictive horizon\r\n    MPCParameters.Nc      = 30;% control horizon\r\n    MPCParameters.Nx      = 4; %number of state variables\r\n    MPCParameters.Nu      = 1; %number of control inputs\r\n    MPCParameters.Ny      = 1; %number of output variables  \r\n    MPCParameters.Ts      = 0.05; %Set the sample time\r\n    MPCParameters.Q       = 100; % cost weight factor \r\n    MPCParameters.R       = 0.1; % cost weight factor \r\n    MPCParameters.S       = 0.5; % cost weight factor \r\n    MPCParameters.qp_solver = 0; %0: default, quadprog; 1:qpOASES; 2:CVXGEN\r\n    MPCParameters.umin      = -5.0;  % the min of deceleration\r\n    MPCParameters.umax      = 3.5;  % the max of acceleration\r\n    MPCParameters.dumin     = -5.0; % minimum limits of jerk\r\n    MPCParameters.dumax     = 5.0; % maximum limits of jerk\r\n    MPCParameters.dist_CG   = 1.5; % maximum limits of jerk\r\nglobal WarmStart;\r\n    WarmStart = zeros(MPCParameters.Np,1);\r\n%  End of mdlInitializeSizes\r\n\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n\r\nglobal InitialGapflag;\r\nglobal E_gradient;\r\nglobal MPCParameters;\r\nglobal WarmStart;\r\n\r\nVlimits     = 30.0; % 趨·٣road speed limits\r\nCTHW        = 3.0;  % 趨Constant Time-Head-Way (CTHW), Ϊ3s\r\nDsafe       = 3.0;    % 趨ǰ뱾Сȫ룬Ϊ3m\r\n\r\nVh          = 0;\r\nAh          = 0;\r\nah_opt      = 0;\r\ndr_al       = 0;\r\nVr_al       = 0;\r\nA_al        = 0;\r\n\r\nt_Start     = tic; % ʼʱ \r\nif InitialGapflag < 2 %  get rid of the first two inputs\r\n    InitialGapflag = InitialGapflag + 1;%\r\nelse\r\n    %***********Step (1). ǰԼ״̬ **********************% \r\n    Target.Vt    = u(1)/3.6; %ǰٶȣλkm/h-->m/s\r\n    Target.Xt    = u(2);     %ǰX\r\n    Target.Yt    = u(3);     %ǰY\r\n    Target.Yawt  = u(4);     %ǰ\r\n    Target.acc   = u(5)*9.8; %ǰٶȣλg's-->m/s2 \r\n    EgoV.Vh      = u(6)/3.6; %ٶȣλkm/h-->m/s\r\n    EgoV.Xh      = u(7);     %X\r\n    EgoV.Yh      = u(8);     %Y\r\n    EgoV.Yawh    = u(9);     %\r\n    EgoV.acc     = u(10)*9.8;%ٶȣλg's-->m/s2 \r\n  \r\n    %********Step(2): ǰԼ״̬״****************%\r\n    [Detected, dr_al, Dangle] = func_Radar_Sensor_Processing(Target, EgoV);    \r\n    if 0 == Detected %δ⵽Ŀ꣬ǰĳΪ·٣ٶΪ0\r\n        Target.Vt   = Vlimits;\r\n        Target.acc  = 0;   \r\n    end\r\n\r\n    Vh      = EgoV.Vh;\r\n    Ah      = EgoV.acc;    \r\n    Vr_al   = Target.Vt - EgoV.Vh;\r\n    A_al    = Target.acc;\r\n    aal_P       = cell(MPCParameters.Np,1); \r\n    for i = 1:1:MPCParameters.Np\r\n        aal_P{i,1} = Target.acc * E_gradient(i); \r\n    end\r\n\r\n    %**Step(3): update longitudinal vehilce model, with inertial delay***%    \r\n    Ts  = MPCParameters.Ts; % 50ms\r\n    tao = 0.1; %inertial delay time\r\n    StateSpaceModel.A =  [1     Ts  0   -Ts*Ts/2;\r\n                          0     1   0   -Ts;\r\n                          0     0   1   Ts;\r\n                          0     0   0   1-Ts/tao ];\r\n    StateSpaceModel.B1 = [0;        0;     0;      Ts/tao]; \r\n    StateSpaceModel.B2 = [Ts*Ts/2;  Ts;    0;      0]; \r\n    StateSpaceModel.C  = [1         0      -CTHW   0];\r\n    % Gmin_host <= H*U <= Gmax_host\r\n    H_env =[1 0 0 0;\r\n            0 0 1 0];\r\n    Gmin_host = [Dsafe; 0];     %[СԾ;С]\r\n    Gmax_host = [500;Vlimits;]; %[Ծ(Ϊֵ);(Ϊ·)]\r\n    \r\n    kesi_host = [dr_al;  Vr_al;  EgoV.Vh;  EgoV.acc ];\r\n    \r\n    %****Step(4):  MPC formulation;********************%\r\n    %Update Theta, PHI and GAMMA for future states prediction\r\n    [PHI0, THETA0, GAMMA0, PHI, THETA, GAMMA] = func_Update_PHI_THETA_GAMMA(StateSpaceModel, MPCParameters);\r\n\r\n    %Update H and g for cost function J=0.5*U'*H*U + g'*U\r\n    U2 = cell2mat(aal_P);\r\n    [H, g] = func_Update_H_g(kesi_host, U2, PHI, THETA, GAMMA, MPCParameters);\r\n    \r\n    %****Step(5):  Call qp-solver********************%\r\n    switch MPCParameters.qp_solver,\r\n        case 0 % default qp-solver: quadprog\r\n            [A, b, Aeq, beq, lb, ub] = func_Constraints_du_quadprog(MPCParameters, Ah, ...\r\n                         kesi_host, U2, PHI0, THETA0, GAMMA0, H_env, Gmin_host, Gmax_host);\r\n            options = optimset('Display','off', ...\r\n                            'TolFun', 1e-8, ...\r\n                            'MaxIter', 2000, ...\r\n                            'Algorithm', 'active-set', ...\r\n                            'FinDiffType', 'forward', ...\r\n                            'RelLineSrchBnd', [], ...\r\n                            'RelLineSrchBndDuration', 1, ...\r\n                            'TolConSQP', 1e-8); \r\n            warning off all  % close the warnings during computation     \r\n\r\n            U0 = WarmStart;           \r\n            [U, FVAL, EXITFLAG] = quadprog(H, g, A, b, Aeq, beq, lb, ub, U0, options); %\r\n            WarmStart = shiftHorizon(U);     % Prepare restart, nominal close loop \r\n            if (1 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver not converged!\\n');                  \r\n            end\r\n            ah_opt =  U(1);\r\n \r\n        case 1 % qpOASES\r\n            [A, lb, ub, lbA, ubA] = func_Constraints_du_qpOASES(MPCParameters, Ah, ...\r\n                      kesi_host, U2, PHI0, THETA0, GAMMA0, H_env, Gmin_host, Gmax_host);\r\n            options = qpOASES_options('default', ...\r\n                                'printLevel', 0); \r\n            \r\n            [U, FVAL, EXITFLAG, iter, lambda] = qpOASES(H, g, A, lb, ub, lbA, ubA, options); %\r\n            if (0 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver: qpOASES not converged!\\n');                  \r\n            end\r\n            ah_opt =  U(1);\r\n\r\n        case 2 % CVXGEN\r\n            %--Licenseƣ鲻ṩCVXGENsolver߿\r\n            [vars, status] = MPC_HostVehicleController_CVXGEN_CTHW(kesi_host, ...\r\n                                    Ah, aal_P, Gmin_host, Gmax_host, CTHW);\r\n            if (1 == status.converged) %if optimization succeeded.\r\n                ah_opt = vars.u_0; \r\n            else\r\n                ah_opt = 0;\r\n            fprintf('MPC solver not converged!\\n');                  \r\n            end\r\n\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected qp-solver, Sol_method=',num2str(flag)]); % Error handling\r\n    end %  end of switch\r\n  \r\nend % end of if Initialflag < 1 % \r\n\r\n[Throttle, Brake] = func_AccelerationTrackingController(ah_opt);\r\n\r\nt_Elapsed = toc( t_Start ); %computation time \r\n\r\nsys = [Throttle; Brake; t_Elapsed;  Vh; Ah; ah_opt; dr_al; Vr_al; A_al];\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\nfunction [Detected, Distance, Dangle] = func_Radar_Sensor_Processing(Target, EgoV)\r\n%***************************************************************% \r\n% % Input:\r\n%    Targetǰ״̬\r\n%    EgoV״̬\r\n% Output:\r\n%    Detected״1ʾ⵽Ŀ꣬0ʾδ⵽Ŀ\r\n%    Distance: ǰ뱾Ծ룬δ⵽ĿĬΪ\r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%***************************************************************% \r\n    L_Radar = 200; % Radar detect length:70 m\r\n    R_Radar = 0.6; % Radar detect range:34.4deg=0.6rad\r\n    DistY = Target.Yt - EgoV.Yh;\r\n    DistX = Target.Xt - EgoV.Xh;\r\n\r\n    Distance  = sqrt( DistY*DistY + DistX*DistX );\r\n    Theta     = atan2(DistY, DistX);\r\n    Theta_Deg = Theta*180/pi;\r\n    Dangle    = Theta_Deg - mod(EgoV.Yawh, 360);\r\n    if abs(Dangle) >= 270\r\n        Dangle = 360 - abs(Dangle);\r\n    end\r\n    \r\n    if abs(Dangle) >= R_Radar\r\n        Distance = L_Radar;        \r\n    end\r\n     \r\n    if Distance < L_Radar\r\n        Detected = 1; %⵽ǰ\r\n    else\r\n        Detected = 0; %δ⵽ǰ        \r\n    end\r\n\r\nfunction [Throttle, Brake] = func_AccelerationTrackingController(ahopt)\r\n\r\nK_brake         = 0.3;\r\nK_throttle      = 0.1; %0.05;\r\nBrake_Sat       = 15;\r\nThrottle_Sat    = 1;\r\n\r\nif ahopt < 0 % Brake control\r\n    Brake = K_brake * ahopt;\r\n    if Brake > Brake_Sat\r\n        Brake = Brake_Sat;\r\n    end\r\n    Throttle = 0;\r\nelse % throttle control \r\n    Brake       = 0;\r\n    Throttle    = K_throttle  *ahopt;\r\n    if Throttle > Throttle_Sat\r\n        Throttle = Throttle_Sat;\r\n    end\r\n    if Throttle < 0\r\n        Throttle = 0;\r\n    end\r\n    \r\nend\r\n\r\nfunction u0 = shiftHorizon(u) %shift control horizon\r\n    u0 = [u(:,2:size(u,2)), u(:,size(u,2))];  %  size(u,2))\r\n\r\nfunction [PHI0, THETA0, GAMMA0, PHI, THETA, GAMMA] = func_Update_PHI_THETA_GAMMA(StateSpaceModel, MPCParameters)\r\n%***************************************************************%\r\n% Ԥʽ Y(t)=PHI*kesi(t)+THETA*DU(t) + GAMMA*U2(t) \r\n% Y(t) = [Eta(t+1|t) Eta(t+2|t) Eta(t+3|t) ... Eta(t+Np|t)]'\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;\r\n    Nx = MPCParameters.Nx;\r\n    Ny = MPCParameters.Ny;\r\n    Nu = MPCParameters.Nu;\r\n    A  = StateSpaceModel.A;\r\n    B1 = StateSpaceModel.B1;\r\n    B2 = StateSpaceModel.B2;\r\n    C  = StateSpaceModel.C;\r\n\r\n    PHI0_cell=cell(Np,1);                            %PHI=[CA CA^2  CA^3 ... CA^Np]' \r\n    THETA0_cell=cell(Np,Nc);                         %THETA\r\n    GAMMA0_cell=cell(Np,Nc);                         %GAMMA\r\n    PHI_cell=cell(Np,1);                            %PHI=[CA CA^2  CA^3 ... CA^Np]' \r\n    THETA_cell=cell(Np,Nc);                         %THETA\r\n    GAMMA_cell=cell(Np,Nc);                         %GAMMA\r\n    for j=1:1:Np\r\n        PHI0_cell{j,1}=A^j;  \r\n        PHI_cell{j,1}=C*PHI0_cell{j,1};             %  demision:Ny* Nx\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                A_j_k = A^(j-k);\r\n                THETA0_cell{j,k}=A_j_k*B1;        \r\n                GAMMA0_cell{j,k}=A_j_k*B2;        \r\n                \r\n                THETA_cell{j,k}=C*A_j_k*B1;        %  demision:Ny*Nu\r\n                GAMMA_cell{j,k}=C*A_j_k*B2;        %  demision:Ny*Nu\r\n            else \r\n                THETA0_cell{j,k}=zeros(Nx,Nu);\r\n                GAMMA0_cell{j,k}=zeros(Nx,Nu);\r\n                \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n                GAMMA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI0=cell2mat(PHI0_cell);    % size(PHI)=[(Ny*Np) * Nx]\r\n    THETA0=cell2mat(THETA0_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA0=cell2mat(GAMMA0_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n   \r\n    PHI=cell2mat(PHI_cell);    % size(PHI)=[(Ny*Np) * Nx]\r\n    THETA=cell2mat(THETA_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA=cell2mat(GAMMA_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n% end %EoF\r\n\r\nfunction [H, g] = func_Update_H_g(kesi, U2, PHI, THETA, GAMMA, MPCParameters)\r\n%***************************************************************%\r\n% trajectory planning\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;   \r\n    Q  = MPCParameters.Q;\r\n    R  = MPCParameters.R;\r\n    S  = MPCParameters.S;\r\n        \r\n    Qq = kron(eye(Np), Q);  % Q = [Np*Nx] *  [Np*Nx] \r\n    Rr = kron(eye(Nc), R);  % R = [Nc*Nu] *  [Nc*Nu]\r\n    Ss = kron(eye(Nc), S);\r\n\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n\r\n    PHI_kesi = PHI * kesi;\r\n    GAMMA_U2 = GAMMA * U2;\r\n    Yr = MPCParameters.dist_CG * ones(Nc, 1);\r\n    H = THETA'*Qq*THETA + Rr + A_t'*Ss*A_t;  \r\n    f = (PHI_kesi' + GAMMA_U2' - Yr')*Qq*THETA;\r\n    g = f';\r\n% end %EoF\r\n\r\nfunction  [A, b, Aeq, beq, lb, ub] = func_Constraints_du_quadprog(MPCParameters, um, ...\r\n                           kesi, U2, PHI0, THETA0, GAMMA0, H, Gmin_host, Gmax_host)\r\n%************************************************************************%\r\n% generate the constraints of the vehicle\r\n%  \r\n%************************************************************************%\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    dumin = MPCParameters.dumin;\r\n    dumax = MPCParameters.dumax;\r\n    umin = MPCParameters.umin;  \r\n    umax = MPCParameters.umax;  \r\n    Umin = kron(ones(Nc,1),umin);\r\n    Umax = kron(ones(Nc,1),umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) A*x<=b----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_H = kron(eye(Nc,Nc),  H);\r\n    G_MAX = kron(ones(Nc,1), Gmax_host);\r\n    G_MIN = kron(ones(Nc,1), Gmin_host);\r\n    A_cell=cell(4,1);\r\n    A_cell{1,1} = A_t; %\r\n    A_cell{2,1} = -A_t;\r\n    A_cell{3,1} = A_H*THETA0;\r\n    A_cell{4,1} = -A_H*THETA0;\r\n    A=cell2mat(A_cell);  %\r\n    \r\n    b_cell=cell(4, 1);\r\n    b_cell{1,1} = Umax - Ut; %\r\n    b_cell{2,1} = -Umin + Ut;\r\n    b_cell{3,1} =  G_MAX - A_H*PHI0*kesi - A_H*GAMMA0*U2;\r\n    b_cell{4,1} = -G_MIN + A_H*PHI0*kesi + A_H*GAMMA0*U2;\r\n    b=cell2mat(b_cell);  % \r\n\r\n%----(2) Aeq*x=beq----------%\r\n    Aeq = [];\r\n    beq = [];\r\n\r\n%----(3) lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1), dumin);\r\n    ub=kron(ones(Nc,1), dumax);\r\n% end %EoF\r\n\r\nfunction [A, lb, ub, lbA, ubA] = func_Constraints_du_qpOASES(MPCParameters, um, ...\r\n                         kesi, U2, PHI0, THETA0, GAMMA0, H, Gmin_host, Gmax_host)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;\r\n    dumin = MPCParameters.dumin;\r\n    dumax = MPCParameters.dumax;\r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n    Umin = kron(ones(Nc,1), umin);\r\n    Umax = kron(ones(Nc,1), umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) lbA <= A_t*x<=ubA----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end\r\n    A_H = kron(eye(Nc,Nc),  H);\r\n    G_MAX = kron(ones(Nc,1), Gmax_host);\r\n    G_MIN = kron(ones(Nc,1), Gmin_host);\r\n  \r\n    A_cell=cell(2,1);\r\n    A_cell{1,1} = A_t; %\r\n    A_cell{2,1} = A_H*THETA0;\r\n    A=cell2mat(A_cell);  %\r\n\r\n    ubA_cell=cell(2, 1);\r\n    lbA_cell=cell(2, 1);\r\n    ubA_cell{1,1} = Umax - Ut;\r\n    lbA_cell{1,1} = Umin - Ut;\r\n    ubA_cell{2,1} = G_MAX - A_H*PHI0*kesi - A_H*GAMMA0*U2;\r\n    lbA_cell{2,1} = G_MIN - A_H*PHI0*kesi - A_H*GAMMA0*U2;\r\n    ubA=cell2mat(ubA_cell);\r\n    lbA=cell2mat(lbA_cell);\r\n\r\n%---- lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1), dumin);\r\n    ub=kron(ones(Nc,1), dumax);\r\n% end %EoF\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/ReadMe",
    "content": "MPC for ACC using virtual lead vehicle\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_AdaptiveCruiseCtrl_VLV/qpOASES_options.m",
    "content": "%qpOASES -- An Implementation of the Online Active Set Strategy.\n%Copyright (C) 2007-2015 by Hans Joachim Ferreau, Andreas Potschka,\n%Christian Kirches et al. All rights reserved.\n%\n%qpOASES is distributed under the terms of the\n%GNU Lesser General Public License 2.1 in the hope that it will be\n%useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n%of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n%See the GNU Lesser General Public License for more details.\n%\n%---------------------------------------------------------------------------------\n%\n%Returns a struct containing values for all options to be used within qpOASES.\n%\n%Call\n%    options = qpOASES_options( 'default' );\n%    options = qpOASES_options( 'reliable' );\n%    options = qpOASES_options( 'MPC' );\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively.\n%\n%Call\n%    options = qpOASES_options( 'option1',value1,'option2',value2,... )\n%to obtain a set of default options but with 'option1' set to value1 etc.\n%\n%Call\n%    options = qpOASES_options( oldOptions,'option1',value1,... )\n%to obtain a copy of the options struct oldOptions but with 'option1' set\n%to value1 etc.\n%\n%Call\n%    options = qpOASES_options( 'default', 'option1',value1,... )\n%    options = qpOASES_options( 'reliable','option1',value1,... )\n%    options = qpOASES_options( 'MPC',     'option1',value1,... )\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively, but with 'option1' set to \n%value1 etc.\n%\n%\n%qpOASES features the following options:\n%  maxIter                    -  Maximum number of iterations (if set\n%                                to -1, a value is chosen heuristically)\n%  maxCpuTime                 -  Maximum CPU time in seconds (if set\n%                                to -1, only iteration limit is used)\n%  printLevel                 -  0: no printed output,\n%                                1: only error messages are printed,\n%                                2: iterations and error messages are printed,\n%                                3: all available messages are printed.\n%\n%  enableRamping              -  Enables (1) or disables (0) ramping.\n%  enableFarBounds            -  Enables (1) or disables (0) the use of \n%                                far bounds.\n%  enableFlippingBounds       -  Enables (1) or disables (0) the use of \n%                                flipping bounds.\n%  enableRegularisation       -  Enables (1) or disables (0) automatic \n%                                Hessian regularisation.\n%  enableFullLITests          -  Enables (1) or disables (0) condition-hardened \n%                                (but more expensive) LI test.\n%  enableNZCTests             -  Enables (1) or disables (0) nonzero curvature \n%                                tests.\n%  enableDriftCorrection      -  Specifies the frequency of drift corrections:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableCholeskyRefactorisation - Specifies the frequency of a full re-\n%                                factorisation of projected Hessian matrix:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableEqualities           -  Specifies whether equalities should be treated \n%                                as always active (1) or not (0)\n%\n%  terminationTolerance       -  Relative termination tolerance to stop homotopy.\n%  boundTolerance             -  If upper and lower bounds differ less than this\n%                                tolerance, they are regarded equal, i.e. as \n%                                equality constraint.\n%  boundRelaxation            -  Initial relaxation of bounds to start homotopy \n%                                and initial value for far bounds.\n%  epsNum                     -  Numerator tolerance for ratio tests.\n%  epsDen                     -  Denominator tolerance for ratio tests.\n%  maxPrimalJump              -  Maximum allowed jump in primal variables in \n%                                nonzero curvature tests.\n%  maxDualJump                -  Maximum allowed jump in dual variables in \n%                                linear independence tests.\n%\n%  initialRamping             -  Start value for ramping strategy.\n%  finalRamping               -  Final value for ramping strategy.\n%  initialFarBounds           -  Initial size for far bounds.\n%  growFarBounds              -  Factor to grow far bounds.\n%  initialStatusBounds        -  Initial status of bounds at first iteration:\n%                                 0: all bounds inactive,\n%                                -1: all bounds active at their lower bound,\n%                                +1: all bounds active at their upper bound.\n%  epsFlipping                -  Tolerance of squared Cholesky diagonal factor \n%                                which triggers flipping bound.\n%  numRegularisationSteps     -  Maximum number of successive regularisation steps.\n%  epsRegularisation          -  Scaling factor of identity matrix used for \n%                                Hessian regularisation.\n%  numRefinementSteps         -  Maximum number of iterative refinement steps.\n%  epsIterRef                 -  Early termination tolerance for iterative \n%                                refinement.\n%  epsLITests                 -  Tolerance for linear independence tests.\n%  epsNZCTests                -  Tolerance for nonzero curvature tests.\n%\n%\n%See also QPOASES, QPOASES_SEQUENCE, QPOASES_AUXINPUT\n%\n%\n%For additional information see the qpOASES User's Manual or\n%visit http://www.qpOASES.org/.\n%\n%Please send remarks and questions to support@qpOASES.org!\nfunction [ options ] = qpOASES_options( varargin )\n\n\tfirstIsStructOrScheme = 0;\n\n\tif ( nargin == 0 ) \n\t\toptions = qpOASES_default_options();\n\telse\n\t\tif ( isstruct( varargin{1} ) )\n\t\t\tif ( mod( nargin,2 ) ~= 1 )\n\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\tend\n\t\t\toptions = varargin{1};\n\t\t\tfirstIsStructOrScheme = 1;\n\t\telse\n\t\t\tif ( ischar( varargin{1} ) )\n\t\t\t\tif ( mod( nargin,2 ) == 0 )\n\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\telse\n\t\t\t\t\tif ( ( nargin > 1 ) && ( ischar( varargin{nargin} ) ) )\n\t\t\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\t\t\tend\n\n\t\t\t\t\tswitch ( varargin{1} )\n\t\t\t\t\t\tcase 'default'\n\t\t\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\t\t\tcase 'reliable'\n\t\t\t\t\t\t\toptions = qpOASES_reliable_options();\n\t\t\t\t\t\tcase {'MPC','mpc','fast'}\n\t\t\t\t\t\t\toptions = qpOASES_MPC_options();\n\t\t\t\t\t\totherwise\n\t\t\t\t\t\t\terror( ['ERROR (qpOASES_options): Only the following option schemes are defined: ''default'', ''reliable'', ''MPC''!'] );\n\t\t\t\t\t\t\t\n\t\t\t\t\tend\n\t\t\t\t\tfirstIsStructOrScheme = 1;\n\t\t\t\tend\n\t\t\telse\n\t\t\t\terror('ERROR (qpOASES_options): First argument needs to be a string or an options struct!');\n\t\t\tend\n\t\tend\n\tend\n\n\t% set options to user-defined values  \n\tfor i=(1+firstIsStructOrScheme):2:nargin\n\n\t\targName  = varargin{i};\n\t\targValue = varargin{i+1};\n\n\t\tif ( ( isempty( argName ) ) || ( ~ischar( argName ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a non-empty string!',i );\n        end\n\t\t\t\n\t\tif ( ( ischar(argValue) ) || ( ~isscalar( argValue ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a scalar constant!',i+1 );\n        end\n\n\t\tif ( ~isfield( options,argName ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d is an invalid option!',i );\n\t\tend\n\n\t\teval( ['options.',argName,' = ',num2str(argValue),';'] );\n\n\tend\n\nend\n\n\nfunction [ options ] = qpOASES_default_options( )\n\n\t% setup options struct with default values\n\toptions = struct(\t'maxIter',                       -1, ...\n\t\t\t\t\t\t'maxCpuTime',                    -1, ...\n\t\t\t\t\t\t'printLevel',                     1, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'enableRamping',                  1, ...\n\t\t\t\t\t\t'enableFarBounds',                1, ...\n\t\t\t\t\t\t'enableFlippingBounds',           1, ...\n\t\t\t\t\t\t'enableRegularisation',           0, ...\n\t\t\t\t\t\t'enableFullLITests',              0, ...\n\t\t\t\t\t\t'enableNZCTests',                 1, ...\n\t\t\t\t\t\t'enableDriftCorrection',          1, ...\n\t\t\t\t\t\t'enableCholeskyRefactorisation',  0, ...\n\t\t\t\t\t\t'enableEqualities',               0, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'terminationTolerance',           5.0e6*eps, ...\n\t\t\t\t\t\t'boundTolerance',                 1.0e6*eps, ...\n\t\t\t\t\t\t'boundRelaxation',                1.0e4, ...\n\t\t\t\t\t\t'epsNum',                        -1.0e3*eps, ...\n\t\t\t\t\t\t'epsDen',                         1.0e3*eps, ...\n\t\t\t\t\t\t'maxPrimalJump',                  1.0e8, ...\n\t\t\t\t\t\t'maxDualJump',                    1.0e8, ...\n\t\t\t\t\t\t...\n    \t\t\t\t\t'initialRamping',                 0.5, ...\n\t\t\t\t\t\t'finalRamping',                   1.0, ...\n\t\t\t\t\t\t'initialFarBounds',               1.0e6, ...\n\t\t\t\t\t\t'growFarBounds',                  1.0e3, ...\n\t\t\t\t\t\t'initialStatusBounds',            -1, ...\n\t\t\t\t\t\t'epsFlipping',                    1.0e3*eps, ...\n\t\t\t\t\t\t'numRegularisationSteps',         0, ...\n\t\t\t\t\t\t'epsRegularisation',              1.0e3*eps, ...\n\t\t\t\t\t\t'numRefinementSteps',             1, ...\n\t\t\t\t\t\t'epsIterRef',                     1.0e2*eps, ...\n\t\t\t\t\t\t'epsLITests',                     1.0e5*eps, ...\n\t\t\t\t\t\t'epsNZCTests',                    3.1e3*eps );\n\nend\n\n\n\nfunction [ options ] = qpOASES_reliable_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableFullLITests             =  1;\n\toptions.enableCholeskyRefactorisation =  1;\n\n\toptions.numRefinementSteps            =  2;\n\nend\n\n\nfunction [ options ] = qpOASES_MPC_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableRamping                 =  0;\n\toptions.enableFarBounds               =  1;\n\toptions.enableFlippingBounds          =  0;\n\toptions.enableRegularisation          =  1;\n\toptions.enableNZCTests                =  0;\n\toptions.enableDriftCorrection         =  0;\n\toptions.enableEqualities              =  1;\n\n\toptions.terminationTolerance          =  1.0e9*eps;\n\t\n\toptions.initialStatusBounds           =  0;\n\toptions.numRegularisationSteps        =  1;\n\toptions.numRefinementSteps            =  0;\n\nend\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/Chapter3_SpeedTrackingControl_MPC.par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run272.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 23:11 on August 30, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run272.par`08-23-2019`23:36:49\r\n#FullDataName CarSim Run Control`Chapter3_SpeedTrackingControl_MPC`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex122.par`08-29-2019`21:59:17\r\n#FullDataName Models: Simulink`MPC_SpeedCtrl_Sim`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap3_MPC_SpeedCtrl\\LEO_MPC_SpeedCtrl.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap3_MPC_SpeedCtrl\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap3_MPC_SpeedCtrl\r\nENTER_PARSFILE IO_Channels\\I_Channels\\I_Ch119.par`08-23-2019`21:26:22\r\n#FullDataName I/O Channels: Import`SpeedCtrl_Imports`MPC_BOOK_Sim_Imports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_imports_tab.txt\r\n\r\n#MiscYellow0\r\nIMP_THROTTLE_ENGINE Replace 0.0 1\r\nIMP_PCON_BK Replace 0.0 1\r\n#ENDMYellow\r\n\r\n#RingCtrl0 2\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Import; { MPC_BOOK_Sim_Imports } SpeedCtrl_Imports\r\n#Library : I/O Channels: Import\r\n#DataSet : SpeedCtrl_Imports\r\n#Category: MPC_BOOK_Sim_Imports\r\n#FileID  : I_Ch119\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 21:26:22\r\n#VehCode Import Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\I_Channels\\I_Ch119.par\r\n\r\n#BlueLink0 I/O Channels: Import`SpeedCtrl_Imports` MPC_BOOK_Sim_Imports` , Import\r\n\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch121.par`08-23-2019`20:56:04\r\n#FullDataName I/O Channels: Export`SpeedCtrl_Exports`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Ax\r\n#MiscYellow0\r\n#Number of Selected Channels: 2\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Ax\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } SpeedCtrl_Exports\r\n#Library : I/O Channels: Export\r\n#DataSet : SpeedCtrl_Exports\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch121\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 20:56:04\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch121.par\r\n\r\n#BlueLink1 I/O Channels: Export`SpeedCtrl_Exports` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_SpeedCtrl.sim\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } MPC_SpeedCtrl_Sim\r\n#Library : Models: Simulink\r\n#DataSet : MPC_SpeedCtrl_Sim\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex122\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-29-2019 21:59:17\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex122.par\r\n\r\n#BlueLink12 Models: Simulink`MPC_SpeedCtrl_Sim` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 272\r\nID_RUN 272\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle123.par`08-02-2011`16:42:24\r\n#FullDataName Vehicle: Assembly`E-Class, Sedan`CS E-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp111.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.8613\r\n*R_SPRING_R 0.8613\r\n*R_DAMPER_L 0.8681\r\n*R_DAMPER_R 0.8681\r\n*CT_FX_L -1.9e-6\r\n*CT_FX_R -1.9e-6\r\n*CS_FY_L -3.3e-5\r\n*CS_FY_R -3.3e-5\r\n*CS_MZ_L 1.4e-4\r\n*CS_MZ_R 1.4e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 5e-5\r\n*CI_FY_R 5e-5\r\n*CI_MZ_L -5.3e-5\r\n*CI_MZ_R -5.3e-5\r\n*C_LONG_L 2.0e-4\r\n*C_LONG_R 2.0e-4\r\n*C_LAT_L 2.2e-5\r\n*C_LAT_R 2.2e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.8681\r\n*R_JOUNCE_R 0.8681\r\n*R_REBOUND_L 0.8681\r\n*R_REBOUND_R 0.8681\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock101.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big Car Damping`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE LINEAR\r\n-1410, -5008\r\n-720, -3436\r\n-390, -2324\r\n-210, -1792\r\n-90, -1008\r\n-20, -228\r\n20, 228\r\n90, 596\r\n200, 784\r\n390, 1100\r\n760, 1796\r\n1160, 2560\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big Car Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big Car Damping\r\n#Category:\r\n#FileID  : Shock101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock101.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 384\r\n\r\nMX_AUX_COEFFICIENT 384\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 384 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 384 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+80 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n78, 0\r\n79, 0\r\n80, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-50, -10000\r\n-49, 0\r\n-48, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +80 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +80 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\nENTER_PARSFILE Suspensions\\Springs\\Spring109.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`34 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 34\r\nFS_EXT_COEFFICIENT 34\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 34\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 34 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 34 N/mm\r\n#Category:\r\n#FileID  : Spring109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring109.par\r\n\r\n#BlueLink0 Suspension: Spring`34 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\n#BlueLink3 Suspension: Spring`34 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Front Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.2 Hz and a front corner weight of 446 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp111.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.2\r\n*TOE_R 0.2\r\n*CAMBER_L -0.15\r\n*CAMBER_R -0.15\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Front Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension` CS E-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire109.par`08-02-2011`16:42:33\r\n#FullDataName Tire`225/60 R18`Touring Tires\r\nX_LENGTH 364\r\nZ_LENGTH 364\r\nY_LENGTH 225\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup108.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Euro Sedan Tire`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL136.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Tire\r\n#Category: Tires\r\n#FileID  : AniSTL136\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL136.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Euro. Sedan Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL137.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL137\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL137.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Euro. Sedan Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL138.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL138.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Euro. Sedan Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Euro Sedan Tire\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Euro Sedan Tire\r\n#Category: Tires\r\n#FileID  : StlGroup108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup108.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Euro Sedan Tire` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 225\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 800 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 800; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 800 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 800 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet111.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 800 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 353\r\nR0 364\r\nFZ_TIRE_COEFFICIENT 278\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 764\r\nVLOW_ALPHA 5\r\nRR_C 0.0041\r\nRR_V 0.00003\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.1\r\nENTER_PARSFILE Tires\\Mz\\TireMz107.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 13.74, 26.59, 38.42, 49.18, 58.84, 67.4, 74.85, 81.2\r\n1, 27.52, 53.29, 77.08, 98.77, 118.28, 135.59, 150.69, 163.58\r\n1.5, 38.52, 75, 109.07, 140.54, 169.23, 195.05, 217.91, 237.76\r\n2, 42.77, 84.07, 123.55, 160.94, 195.99, 228.45, 258.1, 284.74\r\n2.5, 40.05, 79.6, 118.43, 156.31, 192.98, 228.18, 261.6, 292.94\r\n3, 33.77, 67.76, 101.91, 136.11, 170.21, 203.99, 237.23, 269.64\r\n3.5, 26.96, 54.52, 82.71, 111.52, 140.91, 170.77, 200.97, 231.34\r\n4, 21, 42.71, 65.25, 88.66, 112.96, 138.12, 164.12, 190.86\r\n4.5, 16.15, 33.03, 50.78, 69.47, 89.15, 109.84, 131.57, 154.32\r\n5, 12.31, 25.32, 39.18, 53.96, 69.73, 86.54, 104.45, 123.47\r\n5.5, 9.27, 19.2, 29.94, 41.55, 54.11, 67.68, 82.33, 98.09\r\n6, 6.85, 14.32, 22.54, 31.58, 41.53, 52.43, 64.36, 77.37\r\n6.5, 4.9, 10.38, 16.56, 23.52, 31.32, 40.03, 49.71, 60.42\r\n7, 3.3, 7.16, 11.68, 16.92, 22.96, 29.86, 37.67, 46.45\r\n7.5, 1.99, 4.5, 7.63, 11.46, 16.04, 21.43, 27.68, 34.85\r\n8, 0.89, 2.27, 4.25, 6.89, 10.24, 14.36, 19.3, 25.11\r\n8.5, -0.04, 0.39, 1.39, 3.03, 5.34, 8.39, 12.21, 16.87\r\n9, -0.84, -1.22, -1.05, -0.28, 1.15, 3.28, 6.16, 9.83\r\n9.5, -1.52, -2.6, -3.15, -3.12, -2.46, -1.12, 0.94, 3.76\r\n10, -2.12, -3.81, -4.98, -5.59, -5.59, -4.94, -3.59, -1.51\r\n10.5, -2.64, -4.86, -6.59, -7.76, -8.33, -8.28, -7.55, -6.12\r\n11, -3.1, -5.79, -8, -9.66, -10.75, -11.23, -11.05, -10.18\r\n11.5, -3.51, -6.62, -9.25, -11.36, -12.9, -13.84, -14.14, -13.77\r\n12, -3.88, -7.36, -10.37, -12.87, -14.81, -16.17, -16.9, -16.98\r\n12.5, -4.21, -8.02, -11.38, -14.22, -16.53, -18.26, -19.38, -19.86\r\n13, -4.5, -8.62, -12.28, -15.45, -18.08, -20.14, -21.6, -22.44\r\n13.5, -4.77, -9.16, -13.1, -16.55, -19.48, -21.84, -23.62, -24.78\r\n14, -5.02, -9.65, -13.85, -17.56, -20.75, -23.39, -25.45, -26.91\r\n14.5, -5.24, -10.1, -14.53, -18.48, -21.91, -24.81, -27.13, -28.85\r\n15, -5.44, -10.52, -15.16, -19.32, -22.98, -26.1, -28.66, -30.62\r\n15.5, -5.63, -10.9, -15.73, -20.1, -23.96, -27.29, -30.06, -32.25\r\n16, -5.8, -11.25, -16.26, -20.81, -24.86, -28.38, -31.36, -33.75\r\n16.5, -5.97, -11.57, -16.75, -21.47, -25.69, -29.4, -32.55, -35.14\r\n17, -6.11, -11.87, -17.21, -22.08, -26.47, -30.34, -33.66, -36.42\r\n17.5, -6.25, -12.15, -17.63, -22.65, -27.19, -31.21, -34.69, -37.62\r\n18, -6.38, -12.41, -18.02, -23.18, -27.86, -32.02, -35.65, -38.73\r\n18.5, -6.5, -12.65, -18.39, -23.68, -28.48, -32.78, -36.55, -39.76\r\n19, -6.62, -12.88, -18.74, -24.14, -29.07, -33.49, -37.39, -40.73\r\n19.5, -6.72, -13.1, -19.06, -24.58, -29.62, -34.16, -38.17, -41.64\r\n20, -6.82, -13.3, -19.36, -24.99, -30.13, -34.78, -38.91, -42.49\r\n20.5, -6.92, -13.49, -19.65, -25.37, -30.62, -35.37, -39.6, -43.29\r\n21, -7.01, -13.67, -19.92, -25.73, -31.08, -35.92, -40.25, -44.05\r\n21.5, -7.09, -13.83, -20.18, -26.08, -31.51, -36.45, -40.87, -44.76\r\n22, -7.17, -13.99, -20.42, -26.4, -31.92, -36.94, -41.45, -45.44\r\n22.5, -7.24, -14.15, -20.64, -26.71, -32.3, -37.41, -42.01, -46.07\r\n23, -7.32, -14.29, -20.86, -27, -32.67, -37.85, -42.53, -46.68\r\n23.5, -7.38, -14.42, -21.07, -27.27, -33.02, -38.28, -43.03, -47.25\r\n24, -7.45, -14.55, -21.26, -27.54, -33.35, -38.68, -43.5, -47.8\r\n24.5, -7.51, -14.68, -21.45, -27.79, -33.66, -39.06, -43.95, -48.31\r\n25, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\n26, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 225/60 R18\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireMz107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz107.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`225/60 R18` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy107.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 276.28, 542.17, 796.11, 1037.22, 1264.9, 1478.75, 1678.46, 1863.81\r\n1, 543.78, 1067.29, 1567.45, 2042.53, 2491.36, 2913.12, 3307.21, 3673.19\r\n1.5, 794.63, 1560.03, 2291.71, 2987.17, 3644.68, 4263.02, 4841.27, 5378.78\r\n2, 1022.61, 2008.24, 2951.2, 3848.24, 4697.14, 5496.28, 6244.46, 6940.76\r\n2.5, 1223.67, 2403.99, 3534.24, 4610.54, 5630.23, 6591.31, 7492.28, 8331.97\r\n3, 1396.06, 2743.8, 4035.64, 5267.18, 6435.36, 7537.86, 8572.88, 9539\r\n3.5, 1540.13, 3028.22, 4456.04, 5818.77, 7113, 8336.12, 9486.09, 10561.24\r\n4, 1657.77, 3260.87, 4800.56, 6271.72, 7670.65, 8994.49, 10240.97, 11408.22\r\n4.5, 1751.86, 3447.27, 5077.17, 6636.17, 8120.35, 9526.68, 10852.66, 12096.26\r\n5, 1825.68, 3593.81, 5295.1, 6923.97, 8476.36, 9949.04, 11339.39, 12645.19\r\n5.5, 1882.54, 3706.94, 5463.74, 7147.24, 8753.26, 10278.46, 11720.06, 13075.75\r\n6, 1925.52, 3792.65, 5591.84, 7317.32, 8964.81, 10530.87, 12012.67, 13407.74\r\n6.5, 1957.31, 3856.21, 5687.13, 7444.25, 9123.23, 10720.57, 12233.34, 13659.03\r\n7, 1980.19, 3902.12, 5756.22, 7536.65, 9239.02, 10859.81, 12396.02, 13845.08\r\n7.5, 1996.04, 3934.07, 5804.56, 7601.65, 9320.93, 10958.85, 12512.39, 13978.92\r\n8, 2006.38, 3955.09, 5836.61, 7645.08, 9376.12, 11026.13, 12592.07, 14071.29\r\n8.5, 2012.44, 3967.57, 5855.92, 7671.64, 9410.35, 11068.44, 12642.86, 14130.95\r\n9, 2015.19, 3973.45, 5865.35, 7685.08, 9428.24, 11091.25, 12671.03, 14164.92\r\n9.5, 2015.4, 3974.24, 5867.15, 7688.35, 9433.46, 11098.89, 12681.58, 14178.84\r\n10, 2013.65, 3971.12, 5863.1, 7683.82, 9428.92, 11094.83, 12678.48, 14177.19\r\n10.5, 2010.43, 3965.04, 5854.58, 7673.31, 9416.9, 11081.77, 12664.87, 14163.51\r\n11, 2006.09, 3956.73, 5842.69, 7658.29, 9399.2, 11061.86, 12643.23, 14140.62\r\n11.5, 2000.94, 3946.76, 5828.3, 7639.9, 9377.24, 11036.8, 12615.52, 14110.74\r\n12, 1995.19, 3935.59, 5812.08, 7619.02, 9352.14, 11007.91, 12583.3, 14075.63\r\n12.5, 1989.02, 3923.55, 5794.54, 7596.36, 9324.76, 10976.24, 12547.76, 14036.68\r\n13, 1982.57, 3910.94, 5776.1, 7572.47, 9295.8, 10942.61, 12509.88, 13994.97\r\n13.5, 1975.94, 3897.96, 5757.09, 7547.77, 9265.79, 10907.67, 12470.41, 13951.37\r\n14, 1969.22, 3884.77, 5737.75, 7522.61, 9235.15, 10871.92, 12429.93, 13906.55\r\n14.5, 1962.46, 3871.51, 5718.27, 7497.23, 9204.21, 10835.75, 12388.91, 13861.05\r\n15, 1955.73, 3858.28, 5698.81, 7471.85, 9173.21, 10799.49, 12347.71, 13815.27\r\n15.5, 1949.05, 3845.15, 5679.48, 7446.61, 9142.37, 10763.35, 12306.61, 13769.55\r\n16, 1942.46, 3832.17, 5660.38, 7421.64, 9111.82, 10727.53, 12265.82, 13724.13\r\n16.5, 1935.97, 3819.4, 5641.55, 7397.02, 9081.68, 10692.16, 12225.52, 13679.2\r\n17, 1929.6, 3806.86, 5623.06, 7372.82, 9052.04, 10657.35, 12185.83, 13634.92\r\n17.5, 1923.37, 3794.57, 5604.94, 7349.1, 9022.96, 10623.17, 12146.83, 13591.38\r\n18, 1917.28, 3782.56, 5587.21, 7325.88, 8994.48, 10589.68, 12108.6, 13548.67\r\n18.5, 1911.33, 3770.83, 5569.89, 7303.18, 8966.64, 10556.93, 12071.18, 13506.85\r\n19, 1905.53, 3759.38, 5552.99, 7281.02, 8939.44, 10524.92, 12034.6, 13465.95\r\n19.5, 1899.87, 3748.23, 5536.51, 7259.41, 8912.91, 10493.68, 11998.88, 13425.99\r\n20, 1894.37, 3737.36, 5520.45, 7238.35, 8887.04, 10463.21, 11964.03, 13386.99\r\n20.5, 1889.01, 3726.78, 5504.81, 7217.83, 8861.82, 10433.51, 11930.05, 13348.95\r\n21, 1883.79, 3716.48, 5489.59, 7197.84, 8837.27, 10404.57, 11896.93, 13311.86\r\n21.5, 1878.72, 3706.46, 5474.77, 7178.39, 8813.35, 10376.38, 11864.66, 13275.71\r\n22, 1873.78, 3696.71, 5460.34, 7159.45, 8790.07, 10348.93, 11833.23, 13240.49\r\n22.5, 1868.98, 3687.23, 5446.31, 7141.02, 8767.4, 10322.2, 11802.62, 13206.18\r\n23, 1864.31, 3677.99, 5432.65, 7123.08, 8745.34, 10296.17, 11772.8, 13172.75\r\n23.5, 1859.76, 3669.01, 5419.36, 7105.62, 8723.86, 10270.83, 11743.76, 13140.19\r\n24, 1855.34, 3660.27, 5406.42, 7088.63, 8702.94, 10246.15, 11715.48, 13108.47\r\n24.5, 1851.04, 3651.76, 5393.83, 7072.08, 8682.58, 10222.12, 11687.93, 13077.57\r\n25, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\n26, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Lateral Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFy107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy107.par\r\n\r\n#BlueLink1 Tire: Lateral Force`225/60 R18` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx107.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.02, 862.81, 1783.13, 2762.04, 3794.59, 4873.05, 5988.03, 7129.14, 8285.48\r\n0.04, 1405.11, 2856.38, 4345.65, 5859.21, 7381.77, 8898.09, 10393.74, 11855.5\r\n0.06, 1683.96, 3384.43, 5089.04, 6782.93, 8451.6, 10081.79, 11661.81, 13181.59\r\n0.08, 1827.85, 3649.23, 5451.02, 7219.83, 8943.43, 10611.08, 12213.62, 13743.29\r\n0.1, 1906.98, 3792.03, 5642.2, 7445.59, 9191.77, 10871.81, 12478.17, 14004.57\r\n0.12, 1953.08, 3873.7, 5749.19, 7568.78, 9323.31, 11005.08, 12607.67, 14125.76\r\n0.14, 1980.9, 3921.81, 5810.31, 7636.48, 9392.07, 11070.27, 12665.46, 14173.03\r\n0.16, 1997.79, 3949.97, 5844.33, 7671.56, 9424.12, 11095.9, 12681.88, 14178.04\r\n0.18, 2007.75, 3965.55, 5861.32, 7686.27, 9433.43, 11097.23, 12673.18, 14157.7\r\n0.2, 2013.13, 3972.81, 5867.14, 7687.73, 9428.09, 11083.11, 12648.74, 14121.81\r\n0.22, 2015.35, 3974.42, 5865.42, 7680.34, 9413.11, 11059, 12614.36, 14076.35\r\n0.24, 2015.35, 3972.07, 5858.5, 7666.95, 9391.71, 11028.42, 12573.74, 14025.16\r\n0.26, 2013.76, 3966.92, 5847.96, 7649.47, 9366.06, 10993.69, 12529.34, 13970.72\r\n0.28, 2011.02, 3959.8, 5834.91, 7629.22, 9337.64, 10956.43, 12482.8, 13914.72\r\n0.3, 2007.45, 3951.26, 5820.11, 7607.14, 9307.51, 10917.73, 12435.27, 13858.28\r\n0.32, 2003.28, 3941.72, 5804.15, 7583.9, 9276.39, 10878.38, 12387.52, 13802.18\r\n0.34, 1998.68, 3931.51, 5787.42, 7559.98, 9244.83, 10838.92, 12340.11, 13746.92\r\n0.36, 1993.78, 3920.84, 5770.24, 7535.74, 9213.2, 10799.74, 12293.41, 13692.85\r\n0.38, 1988.68, 3909.89, 5752.83, 7511.45, 9181.77, 10761.12, 12247.67, 13640.2\r\n0.4, 1983.44, 3898.79, 5735.37, 7487.29, 9150.75, 10723.23, 12203.05, 13589.1\r\n0.42, 1978.13, 3887.65, 5717.98, 7463.4, 9120.27, 10686.22, 12159.68, 13539.63\r\n0.44, 1972.79, 3876.53, 5700.76, 7439.89, 9090.44, 10650.16, 12117.59, 13491.82\r\n0.46, 1967.46, 3865.5, 5683.77, 7416.82, 9061.31, 10615.11, 12076.84, 13445.67\r\n0.48, 1962.16, 3854.6, 5667.07, 7394.26, 9032.94, 10581.08, 12037.42, 13401.17\r\n0.5, 1956.92, 3843.87, 5650.7, 7372.23, 9005.34, 10548.1, 11999.32, 13358.28\r\n0.52, 1951.74, 3833.32, 5634.68, 7350.75, 8978.52, 10516.16, 11962.53, 13316.96\r\n0.54, 1946.64, 3822.97, 5619.03, 7329.84, 8952.5, 10485.24, 11927, 13277.16\r\n0.56, 1941.64, 3812.84, 5603.75, 7309.5, 8927.25, 10455.32, 11892.7, 13238.82\r\n0.58, 1936.72, 3802.94, 5588.86, 7289.72, 8902.77, 10426.39, 11859.61, 13201.89\r\n0.6, 1931.91, 3793.26, 5574.36, 7270.51, 8879.05, 10398.4, 11827.66, 13166.31\r\n0.62, 1927.2, 3783.82, 5560.24, 7251.85, 8856.06, 10371.34, 11796.82, 13132.02\r\n0.64, 1922.59, 3774.61, 5546.5, 7233.73, 8833.78, 10345.16, 11767.05, 13098.97\r\n0.66, 1918.09, 3765.62, 5533.13, 7216.15, 8812.19, 10319.85, 11738.3, 13067.1\r\n0.68, 1913.69, 3756.87, 5520.13, 7199.08, 8791.28, 10295.36, 11710.53, 13036.36\r\n0.7, 1909.4, 3748.34, 5507.49, 7182.5, 8771.01, 10271.67, 11683.7, 13006.7\r\n0.72, 1905.21, 3740.03, 5495.19, 7166.42, 8751.37, 10248.74, 11657.77, 12978.07\r\n0.74, 1901.12, 3731.93, 5483.24, 7150.8, 8732.33, 10226.54, 11632.7, 12950.42\r\n0.76, 1897.13, 3724.05, 5471.61, 7135.64, 8713.87, 10205.05, 11608.46, 12923.72\r\n0.78, 1893.24, 3716.37, 5460.31, 7120.91, 8695.97, 10184.23, 11585, 12897.9\r\n0.8, 1889.45, 3708.9, 5449.31, 7106.61, 8678.6, 10164.06, 11562.3, 12872.95\r\n0.82, 1885.74, 3701.61, 5438.62, 7092.72, 8661.76, 10144.52, 11540.33, 12848.81\r\n0.84, 1882.13, 3694.52, 5428.22, 7079.23, 8645.4, 10125.56, 11519.04, 12825.45\r\n0.86, 1878.61, 3687.6, 5418.09, 7066.11, 8629.53, 10107.19, 11498.41, 12802.83\r\n0.88, 1875.18, 3680.87, 5408.24, 7053.36, 8614.12, 10089.36, 11478.42, 12780.93\r\n0.9, 1871.82, 3674.31, 5398.66, 7040.96, 8599.14, 10072.05, 11459.04, 12759.71\r\n0.92, 1868.55, 3667.91, 5389.32, 7028.9, 8584.6, 10055.26, 11440.24, 12739.14\r\n0.94, 1865.36, 3661.68, 5380.23, 7017.17, 8570.46, 10038.95, 11421.99, 12719.2\r\n0.96, 1862.25, 3655.6, 5371.38, 7005.76, 8556.71, 10023.1, 11404.28, 12699.85\r\n0.98, 1859.21, 3649.67, 5362.76, 6994.65, 8543.34, 10007.7, 11387.08, 12681.07\r\n1, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\n1.02, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx107.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`225/60 R18` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`225/60 R18`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n784.532, -2.7453\r\n1569.064, -6.7216\r\n2353.596, -11.0497\r\n3138.128, -15.5865\r\n3922.66, -20.2695\r\n4707.192, -25.0638\r\n5491.724, -29.9472\r\n6276.256, -34.9047\r\n7060.788, -39.925\r\n7845.32, -45\r\n8629.852, -50.1231\r\n9414.384, -55.2891\r\n10198.916, -60.4937\r\n10983.448, -65.7334\r\n11767.98, -71.0051\r\n12552.512, -76.3065\r\n13337.044, -81.6351\r\n14121.576, -86.9892\r\n14906.108, -92.3669\r\n15690.64, -97.767\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 225/60 R18\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : CamStiff107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`225/60 R18` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 225/60 R18\r\n#Library : Tire\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : Tire109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n800 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire109.par\r\n\r\n#BlueLink9 Tire`225/60 R18` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`225/60 R18` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp112.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*CT_FX_L -6.3e-6\r\n*CT_FX_R -6.3e-6\r\n*CS_FY_L -8.3e-6\r\n*CS_FY_R -8.3e-6\r\n*CS_MZ_L -1.2e-4\r\n*CS_MZ_R -1.2e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L -3.3e-5\r\n*CI_FY_R -3.3e-5\r\n*CI_MZ_L -5e-5\r\n*CI_MZ_R -5e-5\r\n*C_LONG_L 3.6e-5\r\n*C_LONG_R 3.6e-5\r\n*C_LAT_L 9.4e-5\r\n*C_LAT_R 9.4e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 344\r\n\r\nMX_AUX_COEFFICIENT 344\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 344 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 344 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring110.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`46 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 46\r\nFS_EXT_COEFFICIENT 46\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 46\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 46 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 46 N/mm\r\n#Category:\r\n#FileID  : Spring110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring110.par\r\n\r\n#BlueLink0 Suspension: Spring`46 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`46 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Rear Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\nRear spring rate chosen for a rear ride frequency of 1.4 Hz and a rear corner weight of 380 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp112.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.` CS E-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.1\r\n*TOE_R 0.1\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive`5-Link Rear\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { 5-Link Rear } Rear 5-Link - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear 5-Link - No Dive\r\n#Category: 5-Link Rear\r\n#FileID  : Dive102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive102.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX102.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { 5-Link Rear } Rear 5-Link - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear 5-Link - Longitudinal Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusX102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX102.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Rear 5-Link - Camber Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.66479\r\n-60, 1.43877\r\n-50, 1.21143\r\n-40, 0.981031\r\n-30, 0.746032\r\n-20, 0.505036\r\n-10, 0.25676\r\n0, 0\r\n10, -0.266403\r\n20, -0.543604\r\n30, -0.832791\r\n40, -1.13524\r\n50, -1.45237\r\n60, -1.78583\r\n70, -2.13754\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { 5-Link Rear } Rear 5-Link - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Rear 5-Link - Camber Change\r\n#Category: 5-Link Rear\r\n#FileID  : Camber102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\nGeneric 5-Link rear Camber change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber102.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear 5-Link - Lateral Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { 5-Link Rear } Rear 5-Link - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear 5-Link - Lateral Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusLat102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\nGeneric 5-Link rear Lateral movement vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat102.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe102.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Rear 5-Link - Toe Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, -1.02057\r\n-60, -0.828098\r\n-50, -0.65623\r\n-40, -0.501756\r\n-30, -0.361641\r\n-20, -0.233037\r\n-10, -0.113294\r\n0, 0\r\n10, 0.108974\r\n20, 0.215401\r\n30, 0.320605\r\n40, 0.425353\r\n50, 0.529714\r\n60, 0.632927\r\n70, 0.733253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { 5-Link Rear } Rear 5-Link - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Rear 5-Link - Toe Change\r\n#Category: 5-Link Rear\r\n#FileID  : Toe102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\nGeneric 5-Link Rear Toe change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe102.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Rear Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\nGeneric 5-Link rear suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension` CS E-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`225/60 R18` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`225/60 R18` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass`CS E-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 3050\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 4250\r\nH_H 500\r\nH_CG_SU 530\r\nLX_AXLE 3050\r\nLX_CG_SU 1400\r\nM_SU 1650\r\nIXX_SU 928.1\r\nIYY_SU 2788.5\r\nIZZ_SU 3234.0\r\nIXZ_SU 0\r\nRX_SGUI 0.750\r\nRY_SGUI 1.300\r\nRZ_SGUI 1.400\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1480\r\nY_LENGTH 1880\r\n*HWC_LF 320\r\n*HWC_RF 320\r\n*HWC_LR 300\r\n*HWC_RR 300\r\n\r\nH_WC 300\r\niside 2\r\nH_WC 300\r\niaxle 1\r\niside 1\r\nH_WC 320\r\niside 2\r\nH_WC 320\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS E-Class } E-Class, Sedan Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : E-Class, Sedan Sprung Mass\r\n#Category: CS E-Class\r\n#FileID  : SprMass106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass` CS E-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`E-Class, Sedan Aero`CS E-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1525\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 3050\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS E-Class } E-Class, Sedan Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : E-Class, Sedan Aero\r\n#Category: CS E-Class\r\n#FileID  : Aero105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`E-Class, Sedan Aero` CS E-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh105.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`E-Class, Sedan`E-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 3048\r\nOBJ_Y_LENGTH 1880\r\nOBJ_Z_LENGTH 1480\r\n*DZ_V 0\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 375\r\n*WHEEL_RATIO 1.1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup111.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`E-Class, Sedan`CS E-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.25\r\n*X_REF_LENGTH 2711\r\n*Y_REF_LENGTH 1725\r\n*Z_REF_LENGTH 1400\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL128.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Body`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .6\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Body\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL128.par\r\n\r\n#BlueLink0 Animator: Shape File Link`European Sedan: Body` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL129.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Details`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Details\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL129.par\r\n\r\n#BlueLink1 Animator: Shape File Link`European Sedan: Details` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL130.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Windows`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0\r\n*SPECULAR 1\r\n*TRANSPARENCY 0.7\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.7\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Windows\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL130.par\r\n\r\n#BlueLink2 Animator: Shape File Link`European Sedan: Windows` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL131.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Interior Trim`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\interior_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Interior Trim\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Interior Trim\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL131.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Interior Trim` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL132.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Steering Wheel`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Steering Wheel\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL132.par\r\n\r\n#BlueLink4 Animator: Shape File Link`European Sedan: Steering Wheel` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL133.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Seats`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Seats\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL133\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL133.par\r\n\r\n#BlueLink5 Animator: Shape File Link`European Sedan: Seats` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL134.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Driver`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.69 0.69 0.69\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Driver\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL134\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL134.par\r\n\r\n#BlueLink13 Animator: Shape File Link`European Sedan: Driver` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nx_ref_length 2711\r\ny_ref_length 1725\r\nz_ref_length 1400\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Animator: Shape Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : StlGroup111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup111.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`E-Class, Sedan` CS E-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL151.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Brake Lights (E-Class)`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 .8 .8\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.02\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.25\r\nX_REF_LENGTH 2711\r\nY_REF_LENGTH 1725\r\nZ_REF_LENGTH 1400\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Brake Lights (E-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Brake Lights (E-Class)\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL151\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL151.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Brake Lights (E-Class)` CS European Sedan` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { E-Class Vehicles } E-Class, Sedan\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : E-Class, Sedan\r\n#Category: E-Class Vehicles\r\n#FileID  : AniVeh105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh105.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 1\r\nPMAX_SC 200\r\nENTER_PARSFILE Powertrain\\4wd\\4WD103.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine112.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`250 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.38\r\nTC_THR_REL 0.02\r\nTC_THR_APP 0.06\r\n\r\n#CheckBox0 1\r\nOPT_THROTTLE_DELAY 1\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 41.13, 126.46, 168.44, 171.86, 173.81, 174.77, 175.1, 175.18, 175.23, 175.18\r\n633, 49.35, 154.32, 232.06, 247.82, 250.35, 251.38, 251.74, 251.77, 251.77, 251.77\r\n750, 0, 145.21, 245.96, 268.1, 274.08, 276.25, 277.05, 277.12, 277.1, 277.07\r\n1107, -16.45, 117.35, 288.44, 330.1, 346.63, 352.29, 354.4, 354.59, 354.55, 354.4\r\n1463, -24.68, 78.29, 278.01, 345.45, 367.46, 377.44, 382.32, 383.45, 384.2, 391.51\r\n1820, -27.97, 42.77, 246.75, 351.59, 388.29, 402.59, 410.23, 412.31, 413.85, 424.41\r\n2177, -33.51, 16.45, 195.49, 338.42, 394.8, 427.7, 432.64, 437.57, 442.51, 453.42\r\n2533, -42.07, -10.64, 135.08, 302.54, 398.09, 443.64, 455.67, 463.99, 468.83, 477.05\r\n2890, -50.08, -25.19, 93.73, 255.06, 387.36, 448.48, 473.93, 480.34, 490.21, 498.44\r\n3247, -57.14, -36.65, 62.58, 203.53, 371.29, 444.15, 477.05, 490.21, 500.08, 509.95\r\n3603, -64.08, -46.7, 39.02, 160.4, 334.05, 430.99, 478.7, 493.5, 505.02, 514.89\r\n3960, -71.06, -56.01, 19.61, 126.98, 289.7, 413.12, 473.76, 491.86, 503.37, 509.95\r\n4317, -78.44, -65.43, 0.46, 95.46, 249.64, 394.29, 465.54, 481.99, 493.5, 503.27\r\n4673, -86.11, -74.79, -16.57, 68.44, 207.81, 366.08, 452.38, 468.83, 485.28, 493.5\r\n5030, -94.28, -84.03, -31.71, 44.85, 170.57, 330.59, 435.93, 452.38, 468.83, 477.05\r\n5387, -102.47, -93.46, -45.75, 24, 138.78, 293.42, 410.15, 426.06, 448.04, 452.77\r\n5743, -111.65, -103.3, -59.35, 4.69, 109.99, 254.69, 367.91, 393, 404.78, 409.44\r\n6100, -121.65, -113.67, -72.91, -13.57, 83.71, 217.11, 322.13, 345.48, 356.46, 360.66\r\n6500, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25\r\n6700, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 250 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 250 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine112.par\r\n\r\n#BlueLink0 Powertrain: Engine`250 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 250 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.009121\r\n0.1, 0.009121\r\n0.2, 0.009121\r\n0.3, 0.009121\r\n0.4, 0.00912\r\n0.5, 0.009112\r\n0.6, 0.009066\r\n0.7, 0.008864\r\n0.8, 0.008142\r\n0.9, 0.005941\r\n0.95, 0.00366\r\n0.99, 0.000872\r\n1.01, -0.000872\r\n1.05, -0.00366\r\n1.1, -0.005941\r\n1.2, -0.008142\r\n1.3, -0.008864\r\n1.4, -0.009066\r\n1.5, -0.009112\r\n1.6, -0.00912\r\n1.7, -0.009121\r\n1.8, -0.009121\r\n1.9, -0.009121\r\n2, -0.009121\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 250 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 250 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC104.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 250 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission`\r\n#RingCtrl0 7\r\nNGEARS 7\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.42\r\nR_GEAR_TR(1) 4.38\r\nR_GEAR_TR(2) 2.86\r\nR_GEAR_TR(3) 1.92\r\nR_GEAR_TR(4) 1.37\r\nR_GEAR_TR(5) 1.00\r\nR_GEAR_TR(6) 0.82\r\nR_GEAR_TR(7) 0.70\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nITR(7) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_F(7) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nR_EFF_TR_R(7) 0.99\r\nT_SHIFT 0.35\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift113.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 1-2 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 629\r\n0.2, 629\r\n0.8, 1233\r\n1, 1233\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 503\r\n0.4, 503\r\n0.8, 925\r\n1, 925\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 1-2 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift113.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`7-speed, 1-2 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift114.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 2-3 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 938\r\n0.2, 938\r\n0.8, 1888\r\n1, 1888\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 750\r\n0.4, 750\r\n0.8, 1416\r\n1, 1416\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 2-3 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift114.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`7-speed, 2-3 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift115.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 3-4 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1314\r\n0.2, 1314\r\n0.8, 2813\r\n1, 2813\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1051\r\n0.4, 1051\r\n0.8, 2109\r\n1, 2109\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 3-4 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift115.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`7-speed, 3-4 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift116.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 4-5 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 3942\r\n1, 3942\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 2956\r\n1, 2956\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 4-5 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift116.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`7-speed, 4-5 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift117.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 5-6 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2195\r\n0.2, 2195\r\n0.8, 5400\r\n1, 5400\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1756\r\n0.4, 1756\r\n0.8, 4050\r\n1, 4050\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 5-6 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift117.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`7-speed, 5-6 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\nENTER_PARSFILE Powertrain\\Shift\\Shift118.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 6-7 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2571\r\n0.2, 2571\r\n0.8, 6585\r\n1, 6585\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2057\r\n0.4, 2057\r\n0.8, 4939\r\n1, 4939\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 6-7 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 6-7 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift118.par\r\n\r\n#BlueLink5 Powertrain: Shift Schedule`7-speed, 6-7 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 7\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 7-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 7-Speed Transmission\r\n#Category:\r\n#FileID  : Trans104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans104.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Viscous - Gear Ratio 2.65`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_FD 2.65\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 1\r\nLOCKED_FD_K 100\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 1\r\nLOCKED_DIFF_K 100\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Viscous - Gear Ratio 2.65` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff101.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Viscous - Gear Ratio 2.65`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_RD 2.65\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff101.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Viscous - Gear Ratio 2.65` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 250 kW, 7-spd., 2.65 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 250 kW, 7-spd., 2.65 Ratio\r\n#Category:\r\n#FileID  : 4WD103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\nGeneric 250 kW powertrain with an automatic transmission.  The torque converter data has been tuned to work with the 250 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD103.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W111.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`E-Class, Sedan w/ ABS`CS E-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.15\r\nON_F_SGUI 0.1\r\nON_R_SGUI 0.1\r\nV_F_SGUI 3\r\nV_R_SGUI 3\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq107.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`350 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 350\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 350\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 350 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 350 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq107.par\r\n\r\n#BlueLink0 Brakes: Torque`350 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`350 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS E-Class } E-Class, Sedan w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : E-Class, Sedan w/ ABS\r\n#Category: CS E-Class\r\n#FileID  : Brk4W111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W111.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`E-Class, Sedan w/ ABS` CS E-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2106.par`08-02-2011`16:42:43\r\n#FullDataName Steering`E-Class, Sedan: Power R&P`CS E-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.0001\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 39.5\r\n*L2_LKPO 0\r\n*R1_LKPO 39.5\r\n*R2_LKPO 0\r\n*L1_AKPI 8.0\r\n*L2_AKPI 0\r\n*R1_AKPI 8.0\r\n*R2_AKPI 0\r\n*L1_ACAST 3.5\r\n*L2_ACAST 0\r\n*R1_ACAST 3.5\r\n*R2_ACAST 0\r\n*L1_XKPO -1.0\r\n*L2_XKPO 0\r\n*R1_XKPO -1.0\r\n*R2_XKPO 0\r\n*D_RACK_F 4\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 1\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.0001\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niside 2\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nENTER_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nRACK_TRAVEL_TABLE SPLINE\r\n-916.4942656, -86.36\r\n-867.4138828, -83.03846154\r\n-824.4560495, -79.96296296\r\n-786.3359267, -77.10714286\r\n-752.1486273, -74.44827586\r\n-721.227932, -71.96666667\r\n-693.0665246, -69.64516129\r\n-667.2677336, -67.46875\r\n-643.5147167, -65.42424242\r\n-621.549914, -63.5\r\n-601.160854, -61.68571429\r\n-582.1700533, -59.97222222\r\n-564.4276481, -58.35135135\r\n-547.8059016, -56.81578947\r\n-532.1950333, -55.35897436\r\n-517.5, -53.975\r\n-503.6379761, -52.65853659\r\n-490.5363551, -51.4047619\r\n-478.1311476, -50.20930233\r\n-466.3656834, -49.06818182\r\n-455.1895493, -47.97777778\r\n-444.557715, -46.93478261\r\n-434.4298052, -45.93617021\r\n-424.7694916, -44.97916667\r\n-415.5439804, -44.06122449\r\n-406.7235787, -43.18\r\n0, 0\r\n406.7235787, 43.18\r\n415.5439804, 44.06122449\r\n424.7694916, 44.97916667\r\n434.4298052, 45.93617021\r\n444.557715, 46.93478261\r\n455.1895493, 47.97777778\r\n466.3656834, 49.06818182\r\n478.1311476, 50.20930233\r\n490.5363551, 51.4047619\r\n503.6379761, 52.65853659\r\n517.5, 53.975\r\n532.1950333, 55.35897436\r\n547.8059016, 56.81578947\r\n564.4276481, 58.35135135\r\n582.1700533, 59.97222222\r\n601.160854, 61.68571429\r\n621.549914, 63.5\r\n643.5147167, 65.42424242\r\n667.2677336, 67.46875\r\n693.0665246, 69.64516129\r\n721.227932, 71.96666667\r\n752.1486273, 74.44827586\r\n786.3359267, 77.10714286\r\n824.4560495, 79.96296296\r\n867.4138828, 83.03846154\r\n916.4942656, 86.36\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Rack kinematics; { CS E-Class } E-Class, Sedan Rack Kinematics\r\n#Library : Steering System: Rack kinematics\r\n#DataSet : E-Class, Sedan Rack Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RackKin113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steering rack\r\n\r\nEXIT_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par\r\n\r\n#BlueLink4 Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics` CS E-Class` , Rack input to output: front\r\n\r\nD_RACK 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -64.00924761\r\n-83.03846154, -60.39496988\r\n-79.96296296, -57.20021687\r\n-77.10714286, -54.34703994\r\n-74.44827586, -51.77840772\r\n-71.96666667, -49.45080212\r\n-69.64516129, -47.32999144\r\n-67.46875, -45.38842777\r\n-65.42424242, -43.60354705\r\n-63.5, -41.95660533\r\n-61.68571429, -40.43185156\r\n-59.97222222, -39.01592124\r\n-58.35135135, -37.69738095\r\n-56.81578947, -36.46637887\r\n-55.35897436, -35.31437211\r\n-53.975, -34.23391082\r\n-52.65853659, -33.21846512\r\n-51.4047619, -32.26228482\r\n-50.20930233, -31.3602847\r\n-49.06818182, -30.5079499\r\n-47.97777778, -29.70125727\r\n-46.93478261, -28.93660959\r\n-45.93617021, -28.21078022\r\n-44.97916667, -27.52086625\r\n-44.06122449, -26.86424867\r\n-43.18, -26.23855826\r\n0, 0\r\n43.18, 21.3843292\r\n44.06122449, 21.8085708\r\n44.97916667, 22.25095273\r\n45.93617021, 22.71274374\r\n46.93478261, 23.19534249\r\n47.97777778, 23.70029582\r\n49.06818182, 24.22932041\r\n50.20930233, 24.78432852\r\n51.4047619, 25.367459\r\n52.65853659, 25.98111474\r\n53.975, 26.62800831\r\n55.35897436, 27.31121822\r\n56.81578947, 28.03425875\r\n58.35135135, 28.80116776\r\n59.97222222, 29.61661825\r\n61.68571429, 30.48606232\r\n63.5, 31.41591936\r\n65.42424242, 32.41382662\r\n67.46875, 33.48897913\r\n69.64516129, 34.65260127\r\n71.96666667, 35.91861787\r\n74.44827586, 37.30463871\r\n77.10714286, 38.83345523\r\n79.96296296, 40.53541768\r\n83.03846154, 42.45242008\r\n86.36, 44.6450584\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -44.6450584\r\n-83.03846154, -42.45242008\r\n-79.96296296, -40.53541768\r\n-77.10714286, -38.83345523\r\n-74.44827586, -37.30463871\r\n-71.96666667, -35.91861787\r\n-69.64516129, -34.65260127\r\n-67.46875, -33.48897913\r\n-65.42424242, -32.41382662\r\n-63.5, -31.41591936\r\n-61.68571429, -30.48606232\r\n-59.97222222, -29.61661825\r\n-58.35135135, -28.80116776\r\n-56.81578947, -28.03425875\r\n-55.35897436, -27.31121822\r\n-53.975, -26.62800831\r\n-52.65853659, -25.98111474\r\n-51.4047619, -25.367459\r\n-50.20930233, -24.78432852\r\n-49.06818182, -24.22932041\r\n-47.97777778, -23.70029582\r\n-46.93478261, -23.19534249\r\n-45.93617021, -22.71274374\r\n-44.97916667, -22.25095273\r\n-44.06122449, -21.8085708\r\n-43.18, -21.3843292\r\n0, 0\r\n43.18, 26.23855826\r\n44.06122449, 26.86424867\r\n44.97916667, 27.52086625\r\n45.93617021, 28.21078022\r\n46.93478261, 28.93660959\r\n47.97777778, 29.70125727\r\n49.06818182, 30.5079499\r\n50.20930233, 31.3602847\r\n51.4047619, 32.26228482\r\n52.65853659, 33.21846512\r\n53.975, 34.23391082\r\n55.35897436, 35.31437211\r\n56.81578947, 36.46637887\r\n58.35135135, 37.69738095\r\n59.97222222, 39.01592124\r\n61.68571429, 40.43185156\r\n63.5, 41.95660533\r\n65.42424242, 43.60354705\r\n67.46875, 45.38842777\r\n69.64516129, 47.32999144\r\n71.96666667, 49.45080212\r\n74.44827586, 51.77840772\r\n77.10714286, 54.34703994\r\n79.96296296, 57.20021687\r\n83.03846154, 60.39496988\r\n86.36, 64.00924761\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS E-Class } E-Class, Sedan Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : E-Class, Sedan Wheel Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RkKinAx119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics` CS E-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost102.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 1\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 2500\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -2500, -2500, -2500, -2500, -2500, -2500\r\n-15, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12, -2500, -2500, -2500, -2500, -2500, -2500\r\n-11.5, -2500, -2500, -2500, -2500, -2266.8, -2141.32\r\n-11, -2500, -2420, -2427.94, -2280.85, -1736.13, -1500.51\r\n-10.5, -2500, -2205, -2063.12, -1815.93, -1313.29, -1034.22\r\n-10, -2500, -2000, -1739.25, -1429.79, -980, -700\r\n-9.5, -2500, -1805, -1453.43, -1112.03, -720.39, -464.39\r\n-9, -2500, -1620, -1202.85, -853.22, -520.81, -301.33\r\n-8.5, -2500, -1445, -984.76, -644.8, -369.61, -190.74\r\n-8, -2500, -1280, -796.49, -479.09, -256.9, -117.44\r\n-7.5, -2500, -1125, -635.44, -349.2, -174.42, -70.08\r\n-7, -2500, -980, -499.12, -249.03, -115.3, -40.35\r\n-6.5, -2500, -845, -385.09, -173.2, -73.91, -22.31\r\n-6, -2500, -720, -291, -117.01, -45.72, -11.76\r\n-5.5, -2500, -605, -214.6, -76.39, -27.13, -5.86\r\n-5, -2500, -500, -153.73, -47.89, -15.31, -2.73\r\n-4.5, -2278.13, -405, -106.32, -28.58, -8.14, -1.18\r\n-4, -1600, -320, -70.4, -16.05, -4.01, -0.46\r\n-3.5, -1071.88, -245, -44.12, -8.34, -1.8, -0.16\r\n-3, -675, -180, -25.72, -3.92, -0.71, -0.05\r\n-2.5, -390.63, -125, -13.59, -1.6, -0.24, -0.01\r\n-2, -200, -80, -6.22, -0.54, -0.06, 0\r\n-1.5, -84.38, -45, -2.27, -0.13, -0.01, 0\r\n-1, -25, -20, -0.55, -0.02, 0, 0\r\n-0.5, -3.13, -5, -0.05, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 3.13, 5, 0.05, 0, 0, 0\r\n1, 25, 20, 0.55, 0.02, 0, 0\r\n1.5, 84.38, 45, 2.27, 0.13, 0.01, 0\r\n2, 200, 80, 6.22, 0.54, 0.06, 0\r\n2.5, 390.63, 125, 13.59, 1.6, 0.24, 0.01\r\n3, 675, 180, 25.72, 3.92, 0.71, 0.05\r\n3.5, 1071.88, 245, 44.12, 8.34, 1.8, 0.16\r\n4, 1600, 320, 70.4, 16.05, 4.01, 0.46\r\n4.5, 2278.13, 405, 106.32, 28.58, 8.14, 1.18\r\n5, 2500, 500, 153.73, 47.89, 15.31, 2.73\r\n5.5, 2500, 605, 214.6, 76.39, 27.13, 5.86\r\n6, 2500, 720, 291, 117.01, 45.72, 11.76\r\n6.5, 2500, 845, 385.09, 173.2, 73.91, 22.31\r\n7, 2500, 980, 499.12, 249.03, 115.3, 40.35\r\n7.5, 2500, 1125, 635.44, 349.2, 174.42, 70.08\r\n8, 2500, 1280, 796.49, 479.09, 256.9, 117.44\r\n8.5, 2500, 1445, 984.76, 644.8, 369.61, 190.74\r\n9, 2500, 1620, 1202.85, 853.22, 520.81, 301.33\r\n9.5, 2500, 1805, 1453.43, 1112.03, 720.39, 464.39\r\n10, 2500, 2000, 1739.25, 1429.79, 980, 700\r\n10.5, 2500, 2205, 2063.12, 1815.93, 1313.29, 1034.22\r\n11, 2500, 2420, 2427.94, 2280.85, 1736.13, 1500.51\r\n11.5, 2500, 2500, 2500, 2500, 2266.8, 2141.32\r\n12, 2500, 2500, 2500, 2500, 2500, 2500\r\n12.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n13, 2500, 2500, 2500, 2500, 2500, 2500\r\n13.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n14, 2500, 2500, 2500, 2500, 2500, 2500\r\n14.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n15, 2500, 2500, 2500, 2500, 2500, 2500\r\n16, 2500, 2500, 2500, 2500, 2500, 2500\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive High Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive High Boost Curve\r\n#Category:\r\n#FileID  : FBoost102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost102.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp104.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`E-Class, Sedan - Steering Comp.`CS E-Class\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1.7738e-07\r\n\r\nSTEER_COMP_COEFFICIENT 1.7738e-07\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; { CS E-Class } E-Class, Sedan - Steering Comp.\r\n#Library : Steering System: Compliance\r\n#DataSet : E-Class, Sedan - Steering Comp.\r\n#Category: CS E-Class\r\n#FileID  : StrCmp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp104.par\r\n\r\n#BlueLink13 Steering System: Compliance`E-Class, Sedan - Steering Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS E-Class } E-Class, Sedan: Power R&P\r\n#Library : Steering\r\n#DataSet : E-Class, Sedan: Power R&P\r\n#Category: CS E-Class\r\n#FileID  : StrSys2106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 3050 mm\r\nFront Track =  1600 mm\r\n\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2106.par\r\n\r\n#BlueLink7 Steering`E-Class, Sedan: Power R&P` CS E-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Vehicle: Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : Vehicle123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:24\r\n#VehCode Ind_Ind\r\n\r\nENTRY_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\nGeneric E-Class Sedan (Full-Size) with SLA front and 5-Link rear suspension.\r\n\r\nE-Class type vehicles include Audi A6, BMW 5-Series, Mercedes Benz E350, Lexus GS, Cadillac DTS, Chrysler 300C.\r\nEXIT_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle123.par\r\n\r\n#BlueLink2 Vehicle: Assembly`E-Class, Sedan` CS E-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc161.par`08-30-2019`17:18:33\r\n#FullDataName Procedures`SpeedTrackingCtrl_LongLane`BOOK_MPC_Procedures\r\n#CheckBox0 1\r\nOPT_INIT_CONFIG 1\r\n#CheckBox1 1\r\nOPT_INIT_ROAD 1\r\n#CheckBox2 1\r\nOPT_INIT_SPEED 1\r\n#CheckBox3 1\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 72\r\nTSTOP 50\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 0\r\nSPEED 72\r\nSV_VXS 72\r\nENTER_PARSFILE Control\\Driver\\Driver105.par`08-02-2011`16:43:30\r\n#FullDataName Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview`Constant Position\r\n#RingCtrl0 0\r\n#RingCtrl1 CONSTANT\r\nLTARG_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nAV_SW_MAX_DM 1200\r\nTLAG_DM 0\r\nA_SW_MAX_DM 720\r\n*TPREV 1.5\r\n*SCALAR 0\r\nVLOW_DRIVER 10\r\n\r\n#CheckBox0 0\r\nOPT_DRIVER_MODEL 1\r\n#CheckBox1 0\r\nCREATE_PATH_OBJ off\r\n\r\nTPREV_CONSTANT 1.5\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering by the Closed-loop Driver Model; { Constant Position } No Offset, 1.5 sec. Preview\r\n#Library : Control: Steering by the Closed-loop Driver Model\r\n#DataSet : No Offset, 1.5 sec. Preview\r\n#Category: Constant Position\r\n#FileID  : Driver105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:30\r\n#VehCode Driver path follower\r\n\r\nEXIT_PARSFILE Control\\Driver\\Driver105.par\r\n\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Throttle\\Throttle102.par`08-02-2011`16:43:27\r\n#FullDataName Control: Throttle (Open Loop)`No Open-Loop Throttle`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nTHROTTLE_ENGINE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Throttle (Open Loop); No Open-Loop Throttle\r\n#Library : Control: Throttle (Open Loop)\r\n#DataSet : No Open-Loop Throttle\r\n#Category:\r\n#FileID  : Throttle102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:27\r\n#VehCode Open-loop throttle control\r\n\r\nEXIT_PARSFILE Control\\Throttle\\Throttle102.par\r\n\r\n#BlueLink29 Control: Throttle (Open Loop)`No Open-Loop Throttle` ` , Throttle\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.par`08-02-2011`16:43:22\r\n#FullDataName Road: 3D Surface (All Properties)`1200 m One Lane`Straight\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.005\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY101.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Straight`\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n100, 0, 100\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; Straight\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Straight\r\n#Category:\r\n#FileID  : RoadXY101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY101.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Straight` ` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp102.par`08-02-2011`16:43:14\r\n#FullDataName Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)`Roads\r\nNLANES 5\r\nOPTTHRESHOLD 1\r\n#MiscYellow0\r\n# 0.878 0.878 0.878, Road (One Lane), 0.2, 60, 1, -4, m, 4, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, 1, 4, m, 7.1, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, -7.1, m, -100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, 7.1, m, 100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, -0.969, -4, m, -7.1, m, , , -100, 1200, 5, , ,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.878 0.878 0.878\r\nMATERIAL(1) Road (One Lane)\r\nSPECULAR(1) 0.2\r\nSCALE(1) 60\r\nLTILES(1) 1\r\nLIN(1) -4\r\nLINUNITS(1) m\r\nLOUT(1) 4\r\nLOUTUNITS(1) m\r\nSSTART(1) -100\r\nSSTOP(1) 1200\r\nSINT(1) 5\r\nCOLOR(2) 0.878 0.878 0.878\r\nMATERIAL(2) Road Transition (Light)\r\nSPECULAR(2) 0.1\r\nSCALE(2) 60\r\nLTILES(2) 1\r\nLIN(2) 4\r\nLINUNITS(2) m\r\nLOUT(2) 7.1\r\nLOUTUNITS(2) m\r\nSSTART(2) -100\r\nSSTOP(2) 1200\r\nSINT(2) 5\r\nCOLOR(3) 0.878 0.878 0.878\r\nMATERIAL(3) Grass (Light)\r\nSPECULAR(3) 0.1\r\nSCALE(3) 60\r\nLTILES(3) 3.1\r\nLIN(3) -7.1\r\nLINUNITS(3) m\r\nLOUT(3) -100\r\nLOUTUNITS(3) m\r\nSSTART(3) -100\r\nSSTOP(3) 1200\r\nSINT(3) 5\r\nCOLOR(4) 0.878 0.878 0.878\r\nMATERIAL(4) Grass (Light)\r\nSPECULAR(4) 0.1\r\nSCALE(4) 60\r\nLTILES(4) 3.1\r\nLIN(4) 7.1\r\nLINUNITS(4) m\r\nLOUT(4) 100\r\nLOUTUNITS(4) m\r\nSSTART(4) -100\r\nSSTOP(4) 1200\r\nSINT(4) 5\r\nCOLOR(5) 0.878 0.878 0.878\r\nMATERIAL(5) Road Transition (Light)\r\nSPECULAR(5) 0.1\r\nSCALE(5) 60\r\nLTILES(5) -0.969\r\nLIN(5) -4\r\nLINUNITS(5) m\r\nLOUT(5) -7.1\r\nLOUTUNITS(5) m\r\nSSTART(5) -100\r\nSSTOP(5) 1200\r\nSINT(5) 5\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { Roads } 1200 m Road + 200 m Light Grass (One Lane)\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : 1200 m Road + 200 m Light Grass (One Lane)\r\n#Category: Roads\r\n#FileID  : RdShp102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:14\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp102.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)` Roads` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink6 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.ani`07-20-2011`03:07:16\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road102_1.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.2 0.2 0.2\r\n\r\nadd_obj Roads\\3D_Road\\Road102_2.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_3.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_4.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_5.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.ani\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { Straight } 1200 m One Lane\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : 1200 m One Lane\r\n#Category: Straight\r\n#FileID  : Road102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:22\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1200 m One Lane` Straight` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } SpeedTrackingCtrl_LongLane\r\n#Library : Procedures\r\n#DataSet : SpeedTrackingCtrl_LongLane\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc161\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 17:18:33\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc161.par\r\n\r\n#BlueLink28 Procedures`SpeedTrackingCtrl_LongLane` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter3_SpeedTrackingControl_MPC <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter3_SpeedTrackingControl_MPC\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter3_SpeedTrackingControl_MPC\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter3_SpeedTrackingControl_MPC\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run272\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 23:36:49\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run272.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/LEO_MPC_SpeedCtrl.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"LEO_MPC_SpeedCtrl\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.47\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    1\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      2\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2695.0, 276.0, 970.0, 740.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t3\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[920.0, 563.0]\r\n\tZoomFactor\t\t[1.5]\r\n\tOffset\t\t\t[-53.066666666666663, 144.53333333333327]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Fri Dec 16 13:40:57 2016\"\r\n  Creator\t\t  \"admin\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Fri Aug 30 17:20:48 2019\"\r\n  RTWModifiedTimeStamp\t  489086316\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:47>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"disabled\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    6\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"LEO_MPC_ACC\"\r\n    overrideMode_\t    [0.0]\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"LEO_MPC_ACC\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      []\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      7\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  8\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"50\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"auto\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"Dataset\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    8\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    Cell\t\t    \"UseSpecifiedMinMax\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  128\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"EnableAllAsError\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"none\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    15\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    Cell\t\t    \"PortableWordSizes\"\r\n\t    Cell\t\t    \"GenerateWebview\"\r\n\t    Cell\t\t    \"GenerateCodeMetricsReport\"\r\n\t    Cell\t\t    \"GenerateCodeReplacementReport\"\r\n\t    Cell\t\t    \"GenerateErtSFunction\"\r\n\t    Cell\t\t    \"CreateSILPILBlock\"\r\n\t    Cell\t\t    \"CodeExecutionProfiling\"\r\n\t    Cell\t\t    \"CodeProfilingSaveOptions\"\r\n\t    Cell\t\t    \"CodeProfilingInstrumentation\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      16\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t23\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"InsertPolySpaceComments\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"MATLABFcnDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InternalIdentifier\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"CustomSymbolStrUtil\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t15\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns on\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      off\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  18\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 260, 130, 1340, 770 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    7\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    19\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      X0\t\t      \"0\"\r\n      InheritSampleTime\t      off\r\n      LinearizeMemory\t      off\r\n      LinearizeAsDelay\t      off\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"LEO_MPC_SpeedCtrl\"\r\n    Location\t\t    [2695, 276, 3665, 1016]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"150\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"15\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"14\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [235, 204, 335, 266]\r\n      ZOrder\t\t      33\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"LEO_MPC_SpeedCtrl.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"12\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [90, 250, 95, 310]\r\n      ZOrder\t\t      21\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"black\"\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[2 4]\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      Name\t\t      \"Memory1\"\r\n      SID\t\t      \"9\"\r\n      Position\t\t      [170, 219, 180, 251]\r\n      ZOrder\t\t      9\r\n      ShowName\t\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"10\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [190, 334, 360, 386]\r\n      ZOrder\t\t      13\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_MPC_SpeedCtrl\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"13\"\r\n      Position\t\t      [25, 280, 60, 310]\r\n      ZOrder\t\t      32\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"11\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [25, 345, 85, 375]\r\n      ZOrder\t\t      20\r\n      BlockMirror\t      on\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      17\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-41, 0]\r\n      Branch {\r\n\tZOrder\t\t\t48\r\n\tPoints\t\t\t[0, -80]\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t47\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      25\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-9, 0; 0, -30]\r\n      DstBlock\t\t      \"Memory1\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      26\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      41\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [83, 0; 0, 125]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      53\r\n      SrcBlock\t\t      \"Memory1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/Main_MPC_SpeedCtrl.m",
    "content": "function [sys,x0,str,ts] =Main_MPC_SpeedCtrl(t,x,u,flag)\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 2;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 6;  %S\r\nsizes.NumInputs      = 2; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\nglobal MPCParameters; \r\n    MPCParameters.Np      = 30;% predictive horizon\r\n    MPCParameters.Nc      = 30;% control horizon\r\n    MPCParameters.Nx      = 2; %number of state variables\r\n    MPCParameters.Nu      = 1; %number of control inputs\r\n    MPCParameters.Ny      = 1; %number of output variables  \r\n    MPCParameters.Ts      = 0.05; %Set the sample time\r\n    MPCParameters.Q       = 100; % cost weight factor \r\n    MPCParameters.R       = 0.1; % cost weight factor \r\n    MPCParameters.S       = 0.1; % cost weight factor \r\n    MPCParameters.qp_solver = 0; %0: default, quadprog; 1:qpOASES\r\n    MPCParameters.refspeedT = 1; %0: default, step speed profile; \r\n                                 %1:sine-wave speed profile\r\n    MPCParameters.umin      = -5.0;  % the min of deceleration\r\n    MPCParameters.umax      = 3.5;  % the max of acceleration\r\n    MPCParameters.dumin     = -5.0; % minimum limits of jerk\r\n    MPCParameters.dumax     = 5.0; % maximum limits of jerk\r\nglobal WarmStart;\r\n    WarmStart = zeros(MPCParameters.Np,1);\r\n%  End of mdlInitializeSizes\r\n\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n\r\nglobal InitialGapflag;\r\nglobal MPCParameters;\r\nglobal WarmStart;\r\nVx    = 0;\r\na_x   = 0;\r\na_des = 0;\r\n\r\nt_Start = tic; % ʼʱ \r\nif InitialGapflag < 2 %  get rid of the first two inputs\r\n    InitialGapflag = InitialGapflag + 1;% delay\r\nelse\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %***********Step (1). Update vehicle states *************************% \r\n    Vx    = u(1)/3.6;  %ٶȣλkm/h-->m/s\r\n    a_x   = u(2)*9.8;  %ٶȣλg's-->m/s2 \r\n    kesi = [Vx;  a_x]; %³״̬\r\n    \r\n    %********Step(2): Generate reference speed profile *******************%\r\n    switch MPCParameters.refspeedT,\r\n        case 0 % default, step speed profile\r\n            %----趨ʽٶ----------------------%\r\n            SpeedProfile = func_ConstantSpeed(InitialGapflag, MPCParameters);\r\n        case 1 % sine-wave speed profile\r\n            %----sine waveʽ ٶ--------------%\r\n            SpeedProfile = func_SineSpeed(InitialGapflag,MPCParameters);\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected speed-profile:',num2str(MPCParameters.refspeedT)]); % Error handling\r\n    end %  end of switch \r\n    \r\n    %****Step(3): update longitudinal vehilce model with inertial delay**8%\r\n    Ts = MPCParameters.Ts; % 50ms\r\n    tao = 0.2; %ϵͳʱ0.2 for simulation\r\n    StateSpaceModel.A =  [1      Ts;\r\n                          0      1-Ts/tao];\r\n    StateSpaceModel.B =  [0;     Ts/tao]; \r\n    StateSpaceModel.C =  [1,    0];\r\n    %****Step(4):  MPC formulation;********************%\r\n    %Update Theta and PHI for future states prediction\r\n    [PHI, THETA] = func_Update_PHI_THETA(StateSpaceModel, MPCParameters);\r\n\r\n    %Update H and f for cost function J\r\n    [H, f, g] = func_Update_H_f(kesi, SpeedProfile, PHI, THETA, MPCParameters); \r\n    \r\n    %****Step(5):  Call qp-solver********************%\r\n    switch MPCParameters.qp_solver,\r\n        case 0 % default qp-solver: quadprog\r\n            [A, b, Aeq, beq, lb, ub] = func_Constraints_u_quadprog(MPCParameters);\r\n            options = optimset('Display','off', ...\r\n                            'TolFun', 1e-8, ...\r\n                            'MaxIter', 2000, ...\r\n                            'Algorithm', 'active-set', ...\r\n                            'FinDiffType', 'forward', ...\r\n                            'RelLineSrchBnd', [], ...\r\n                            'RelLineSrchBndDuration', 1, ...\r\n                            'TolConSQP', 1e-8); \r\n            warning off all  % close the warnings during computation     \r\n\r\n            U0 = WarmStart;           \r\n            [U, FVAL, EXITFLAG] = quadprog(H, g, A, b, Aeq, beq, lb, ub, U0, options); %\r\n            WarmStart = shiftHorizon(U);     % Prepare restart, nominal close loop \r\n            if (1 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver not converged!\\n');                  \r\n            end\r\n            a_des =  U(1);\r\n \r\n        case 1 % qpOASES\r\n            [A, lb, ub, lbA, ubA] = func_Constraints_u_qpOASES(MPCParameters);\r\n            options = qpOASES_options('default', ...\r\n                                'printLevel', 0); \r\n\r\n            %=======================USE QP==================%\r\n            [U, FVAL, EXITFLAG, iter, lambda] = qpOASES(H, g, A, lb, ub, lbA, ubA, options); %\r\n\r\n            %=======================USE SQP==================%\r\n    %         try\r\n    %             H=sparse(H);\r\n    %             A=sparse(A);\r\n    %         catch\r\n    %             fprintf('qpOASES Error reported\\n'); \r\n    %         end\r\n    %         if (qpOASES_hotstart_flag)\r\n    %             [qpOASES_QP, U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('i', H, g, A, lb, ub, lbA, ubA, options);\r\n    %             qpOASES_hotstart_flag = 1;\r\n    %         else    \r\n    %             [U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('m', qpOASES_QP, H, g, A, lb, ub, lbA, ubA, options); %\r\n    %         end\r\n            if (0 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver: qpOASES not converged!\\n');                  \r\n            end\r\n            a_des =  U(1);\r\n\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected qp-solver, Sol_method=',num2str(flag)]); % Error handling\r\n    end %  end of switch \r\n\r\nend % end of if Initialflag < 1 % \r\n\r\n    %****Step(6):  ļٶThrottleBrake;********************%\r\n    [Throttle, Brake] = func_AccelerationTrackingController(a_des);\r\n\r\nt_Elapsed = toc( t_Start ); %computation time \r\n\r\nsys = [Throttle; Brake;t_Elapsed; Vx; a_x; a_des]; \r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%============================================================== \r\nfunction [Vref] = func_SineSpeed(Index, MPCParameters)\r\n%ʽٶ\r\n    %****Sine wave parameters\r\n    T = 50; %ٶߵڣunit: s\r\n    freq = 1/T; %ٶߵƵʣunit: Hz\r\n    Amplit = 10;%ٶߵķֵ\r\n    offst = 20; %ٶߵƫ\r\n    \r\n    Ts = MPCParameters.Ts; %ʱ=0.05unit: s\r\n    Np = MPCParameters.Np; % Ԥʱ30\r\n    Vref = cell(Np,1);\r\n    t0 = Index*Ts;\r\n\r\n    for i = 1:1:Np\r\n        t = t0 + i*Ts;\r\n        Vref{i,1}   =   Amplit*sin(2*pi*freq*t) + offst;   \r\n    end\r\n   \r\n% end %EoF\r\n\r\nfunction [Vref] = func_ConstantSpeed(InitialGapflag, MPCParameters)\r\n% ɽʽٶ    \r\n    Ts = MPCParameters.Ts; %ʱ=0.05unit: s\r\n    Np = MPCParameters.Np; % Ԥʱ30\r\n    Vref = cell(Np,1);\r\n    \r\n    % Զݵʽ\r\n    if InitialGapflag < 400\r\n        Vset = 10;\r\n    else\r\n        if InitialGapflag < 800\r\n            Vset = 10;\r\n        else\r\n            if InitialGapflag < 1500\r\n                Vset = 20;\r\n            else\r\n                Vset = 5;\r\n            end\r\n        end\r\n    end\r\n\r\n    for i = 1:1:Np\r\n        Vref{i,1}   =   Vset;   \r\n    end\r\n\r\n% end %EoF\r\n\r\nfunction [Throttle, Brake] = func_AccelerationTrackingController(ahopt)\r\n% λٶתΪſƶѹ\r\n    K_brake         = 0.3;\r\n    K_throttle      = 0.1; %0.05;\r\n    Brake_Sat       = 15;\r\n    Throttle_Sat    = 1;\r\n\r\n    if ahopt < 0 % Brake control\r\n        Brake = K_brake * ahopt;\r\n        if Brake > Brake_Sat\r\n            Brake = Brake_Sat;\r\n        end\r\n        Throttle = 0;\r\n    else % throttle control \r\n        Brake       = 0;\r\n        Throttle    = K_throttle  *ahopt;\r\n        if Throttle > Throttle_Sat\r\n            Throttle = Throttle_Sat;\r\n        end\r\n        if Throttle < 0\r\n            Throttle = 0;\r\n        end\r\n\r\n    end\r\n% end %EoF\r\n\r\nfunction u0 = shiftHorizon(u) %shift control horizon\r\n    u0 = [u(:,2:size(u,2)), u(:,size(u,2))];  %  size(u,2))\r\n    \r\nfunction [PHI, THETA] = func_Update_PHI_THETA(StateSpaceModel, MPCParameters)\r\n%***************************************************************%\r\n% Ԥʽ Y(t)=PHI*kesi(t)+THETA*DU(t) \r\n% Y(t) = [Eta(t+1|t) Eta(t+2|t) Eta(t+3|t) ... Eta(t+Np|t)]'\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;\r\n    Nx = MPCParameters.Nx;\r\n    Ny = MPCParameters.Ny;\r\n    Nu = MPCParameters.Nu;\r\n    A = StateSpaceModel.A;\r\n    B = StateSpaceModel.B;\r\n    C = StateSpaceModel.C;\r\n\r\n    PHI_cell=cell(Np,1);                            %PHI=[CA CA^2  CA^3 ... CA^Np]' \r\n    THETA_cell=cell(Np,Nc);                         %THETA\r\n    for j=1:1:Np\r\n        PHI_cell{j,1}=C*A^j;                       %  demision:Ny* Nx\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;        %  demision:Ny*Nu\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI=cell2mat(PHI_cell);    % size(PHI)=[(Ny*Np) * Nx]\r\n    THETA=cell2mat(THETA_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n% end %EoF\r\n\r\n\r\nfunction[H, f, g] = func_Update_H_f(kesi, SpeedProfile, PHI, THETA, MPCParameters)\r\n%***************************************************************%\r\n% trajectory planning\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;   \r\n    Q  = MPCParameters.Q;\r\n    R  = MPCParameters.R;\r\n        \r\n    Qq = kron(eye(Np),Q);  %           Q = [Np*Nx] *  [Np*Nx] \r\n    Rr = kron(eye(Nc),R);  %           R = [Nc*Nu] *  [Nc*Nu]\r\n\r\n    Vref = cell2mat(SpeedProfile); \r\n    error = PHI * kesi;    %[(Nx*Np) * 1]\r\n\r\n    H = THETA'*Qq*THETA + Rr;  \r\n    f = (error' - Vref')*Qq*THETA;\r\n    g = f';\r\n% end %EoF\r\n\r\nfunction  [A, b, Aeq, beq, lb, ub] = func_Constraints_u_quadprog(MPCParameters)\r\n%************************************************************************%\r\n% generate the constraints of the vehicle\r\n%  \r\n%************************************************************************%\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n\r\n    A   = [];\r\n    b   = [];\r\n    Aeq = [];\r\n    beq = [];\r\n\r\n%----(3) lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),umin);\r\n    ub=kron(ones(Nc,1),umax);\r\n% end %EoF\r\n\r\nfunction [A_t, lb, ub, lbA, ubA] = func_Constraints_u_qpOASES(MPCParameters)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n\r\n    A_t = [];\r\n    lbA = [];\r\n    ubA = [];\r\n%---- lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),umin);\r\n    ub=kron(ones(Nc,1),umax);\r\n% end %EoF\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/ReadMe",
    "content": "MPC for Speed Tracking Control. Use desired acceleration (a_des) as input\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/SimRes_Plot_SineWaveSpeed.m",
    "content": " index = 1:1:2001;\r\n t = 0.05*index;\r\n \r\n A = 10;\r\n offst = 20; %ٶߵƫ\r\n T =50;\r\n f = 1/T;\r\n Ts = 0.05;\r\n y = A*sin(2*pi*f*t)+offst;\r\n plot(index,y)\r\n hold on\r\n \r\nplot(u.signals.values(:,4),'r.');"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/SimRes_Plot_StepSpeed.m",
    "content": " time = 1:1:2001;\r\n t = 0.05*time;\r\n num=length(t);\r\n Spet_speed = zeros(1,num);\r\n\r\n for index=1:num\r\n    if index < 800\r\n        Spet_speed(index) = 10;\r\n    else\r\n        if index < 1500\r\n            Spet_speed(index) = 20;\r\n        else\r\n            Spet_speed(index) = 5;\r\n        end\r\n    end   \r\n end\r\n \r\n plot(time,Spet_speed)\r\n hold on\r\n grid on\r\n \r\n plot(u.signals.values(:,4),'r.');\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl/qpOASES_options.m",
    "content": "%qpOASES -- An Implementation of the Online Active Set Strategy.\n%Copyright (C) 2007-2015 by Hans Joachim Ferreau, Andreas Potschka,\n%Christian Kirches et al. All rights reserved.\n%\n%qpOASES is distributed under the terms of the\n%GNU Lesser General Public License 2.1 in the hope that it will be\n%useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n%of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n%See the GNU Lesser General Public License for more details.\n%\n%---------------------------------------------------------------------------------\n%\n%Returns a struct containing values for all options to be used within qpOASES.\n%\n%Call\n%    options = qpOASES_options( 'default' );\n%    options = qpOASES_options( 'reliable' );\n%    options = qpOASES_options( 'MPC' );\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively.\n%\n%Call\n%    options = qpOASES_options( 'option1',value1,'option2',value2,... )\n%to obtain a set of default options but with 'option1' set to value1 etc.\n%\n%Call\n%    options = qpOASES_options( oldOptions,'option1',value1,... )\n%to obtain a copy of the options struct oldOptions but with 'option1' set\n%to value1 etc.\n%\n%Call\n%    options = qpOASES_options( 'default', 'option1',value1,... )\n%    options = qpOASES_options( 'reliable','option1',value1,... )\n%    options = qpOASES_options( 'MPC',     'option1',value1,... )\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively, but with 'option1' set to \n%value1 etc.\n%\n%\n%qpOASES features the following options:\n%  maxIter                    -  Maximum number of iterations (if set\n%                                to -1, a value is chosen heuristically)\n%  maxCpuTime                 -  Maximum CPU time in seconds (if set\n%                                to -1, only iteration limit is used)\n%  printLevel                 -  0: no printed output,\n%                                1: only error messages are printed,\n%                                2: iterations and error messages are printed,\n%                                3: all available messages are printed.\n%\n%  enableRamping              -  Enables (1) or disables (0) ramping.\n%  enableFarBounds            -  Enables (1) or disables (0) the use of \n%                                far bounds.\n%  enableFlippingBounds       -  Enables (1) or disables (0) the use of \n%                                flipping bounds.\n%  enableRegularisation       -  Enables (1) or disables (0) automatic \n%                                Hessian regularisation.\n%  enableFullLITests          -  Enables (1) or disables (0) condition-hardened \n%                                (but more expensive) LI test.\n%  enableNZCTests             -  Enables (1) or disables (0) nonzero curvature \n%                                tests.\n%  enableDriftCorrection      -  Specifies the frequency of drift corrections:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableCholeskyRefactorisation - Specifies the frequency of a full re-\n%                                factorisation of projected Hessian matrix:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableEqualities           -  Specifies whether equalities should be treated \n%                                as always active (1) or not (0)\n%\n%  terminationTolerance       -  Relative termination tolerance to stop homotopy.\n%  boundTolerance             -  If upper and lower bounds differ less than this\n%                                tolerance, they are regarded equal, i.e. as \n%                                equality constraint.\n%  boundRelaxation            -  Initial relaxation of bounds to start homotopy \n%                                and initial value for far bounds.\n%  epsNum                     -  Numerator tolerance for ratio tests.\n%  epsDen                     -  Denominator tolerance for ratio tests.\n%  maxPrimalJump              -  Maximum allowed jump in primal variables in \n%                                nonzero curvature tests.\n%  maxDualJump                -  Maximum allowed jump in dual variables in \n%                                linear independence tests.\n%\n%  initialRamping             -  Start value for ramping strategy.\n%  finalRamping               -  Final value for ramping strategy.\n%  initialFarBounds           -  Initial size for far bounds.\n%  growFarBounds              -  Factor to grow far bounds.\n%  initialStatusBounds        -  Initial status of bounds at first iteration:\n%                                 0: all bounds inactive,\n%                                -1: all bounds active at their lower bound,\n%                                +1: all bounds active at their upper bound.\n%  epsFlipping                -  Tolerance of squared Cholesky diagonal factor \n%                                which triggers flipping bound.\n%  numRegularisationSteps     -  Maximum number of successive regularisation steps.\n%  epsRegularisation          -  Scaling factor of identity matrix used for \n%                                Hessian regularisation.\n%  numRefinementSteps         -  Maximum number of iterative refinement steps.\n%  epsIterRef                 -  Early termination tolerance for iterative \n%                                refinement.\n%  epsLITests                 -  Tolerance for linear independence tests.\n%  epsNZCTests                -  Tolerance for nonzero curvature tests.\n%\n%\n%See also QPOASES, QPOASES_SEQUENCE, QPOASES_AUXINPUT\n%\n%\n%For additional information see the qpOASES User's Manual or\n%visit http://www.qpOASES.org/.\n%\n%Please send remarks and questions to support@qpOASES.org!\nfunction [ options ] = qpOASES_options( varargin )\n\n\tfirstIsStructOrScheme = 0;\n\n\tif ( nargin == 0 ) \n\t\toptions = qpOASES_default_options();\n\telse\n\t\tif ( isstruct( varargin{1} ) )\n\t\t\tif ( mod( nargin,2 ) ~= 1 )\n\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\tend\n\t\t\toptions = varargin{1};\n\t\t\tfirstIsStructOrScheme = 1;\n\t\telse\n\t\t\tif ( ischar( varargin{1} ) )\n\t\t\t\tif ( mod( nargin,2 ) == 0 )\n\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\telse\n\t\t\t\t\tif ( ( nargin > 1 ) && ( ischar( varargin{nargin} ) ) )\n\t\t\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\t\t\tend\n\n\t\t\t\t\tswitch ( varargin{1} )\n\t\t\t\t\t\tcase 'default'\n\t\t\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\t\t\tcase 'reliable'\n\t\t\t\t\t\t\toptions = qpOASES_reliable_options();\n\t\t\t\t\t\tcase {'MPC','mpc','fast'}\n\t\t\t\t\t\t\toptions = qpOASES_MPC_options();\n\t\t\t\t\t\totherwise\n\t\t\t\t\t\t\terror( ['ERROR (qpOASES_options): Only the following option schemes are defined: ''default'', ''reliable'', ''MPC''!'] );\n\t\t\t\t\t\t\t\n\t\t\t\t\tend\n\t\t\t\t\tfirstIsStructOrScheme = 1;\n\t\t\t\tend\n\t\t\telse\n\t\t\t\terror('ERROR (qpOASES_options): First argument needs to be a string or an options struct!');\n\t\t\tend\n\t\tend\n\tend\n\n\t% set options to user-defined values  \n\tfor i=(1+firstIsStructOrScheme):2:nargin\n\n\t\targName  = varargin{i};\n\t\targValue = varargin{i+1};\n\n\t\tif ( ( isempty( argName ) ) || ( ~ischar( argName ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a non-empty string!',i );\n        end\n\t\t\t\n\t\tif ( ( ischar(argValue) ) || ( ~isscalar( argValue ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a scalar constant!',i+1 );\n        end\n\n\t\tif ( ~isfield( options,argName ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d is an invalid option!',i );\n\t\tend\n\n\t\teval( ['options.',argName,' = ',num2str(argValue),';'] );\n\n\tend\n\nend\n\n\nfunction [ options ] = qpOASES_default_options( )\n\n\t% setup options struct with default values\n\toptions = struct(\t'maxIter',                       -1, ...\n\t\t\t\t\t\t'maxCpuTime',                    -1, ...\n\t\t\t\t\t\t'printLevel',                     1, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'enableRamping',                  1, ...\n\t\t\t\t\t\t'enableFarBounds',                1, ...\n\t\t\t\t\t\t'enableFlippingBounds',           1, ...\n\t\t\t\t\t\t'enableRegularisation',           0, ...\n\t\t\t\t\t\t'enableFullLITests',              0, ...\n\t\t\t\t\t\t'enableNZCTests',                 1, ...\n\t\t\t\t\t\t'enableDriftCorrection',          1, ...\n\t\t\t\t\t\t'enableCholeskyRefactorisation',  0, ...\n\t\t\t\t\t\t'enableEqualities',               0, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'terminationTolerance',           5.0e6*eps, ...\n\t\t\t\t\t\t'boundTolerance',                 1.0e6*eps, ...\n\t\t\t\t\t\t'boundRelaxation',                1.0e4, ...\n\t\t\t\t\t\t'epsNum',                        -1.0e3*eps, ...\n\t\t\t\t\t\t'epsDen',                         1.0e3*eps, ...\n\t\t\t\t\t\t'maxPrimalJump',                  1.0e8, ...\n\t\t\t\t\t\t'maxDualJump',                    1.0e8, ...\n\t\t\t\t\t\t...\n    \t\t\t\t\t'initialRamping',                 0.5, ...\n\t\t\t\t\t\t'finalRamping',                   1.0, ...\n\t\t\t\t\t\t'initialFarBounds',               1.0e6, ...\n\t\t\t\t\t\t'growFarBounds',                  1.0e3, ...\n\t\t\t\t\t\t'initialStatusBounds',            -1, ...\n\t\t\t\t\t\t'epsFlipping',                    1.0e3*eps, ...\n\t\t\t\t\t\t'numRegularisationSteps',         0, ...\n\t\t\t\t\t\t'epsRegularisation',              1.0e3*eps, ...\n\t\t\t\t\t\t'numRefinementSteps',             1, ...\n\t\t\t\t\t\t'epsIterRef',                     1.0e2*eps, ...\n\t\t\t\t\t\t'epsLITests',                     1.0e5*eps, ...\n\t\t\t\t\t\t'epsNZCTests',                    3.1e3*eps );\n\nend\n\n\n\nfunction [ options ] = qpOASES_reliable_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableFullLITests             =  1;\n\toptions.enableCholeskyRefactorisation =  1;\n\n\toptions.numRefinementSteps            =  2;\n\nend\n\n\nfunction [ options ] = qpOASES_MPC_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableRamping                 =  0;\n\toptions.enableFarBounds               =  1;\n\toptions.enableFlippingBounds          =  0;\n\toptions.enableRegularisation          =  1;\n\toptions.enableNZCTests                =  0;\n\toptions.enableDriftCorrection         =  0;\n\toptions.enableEqualities              =  1;\n\n\toptions.terminationTolerance          =  1.0e9*eps;\n\t\n\toptions.initialStatusBounds           =  0;\n\toptions.numRegularisationSteps        =  1;\n\toptions.numRefinementSteps            =  0;\n\nend\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/Chapter3_SpeedTrackingControl_MPC_du.par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run283.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 23:31 on August 30, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run283.par`08-30-2019`23:15:43\r\n#FullDataName CarSim Run Control`Chapter3_SpeedTrackingControl_MPC_du`BOOK_MPC_Examples\r\n#VehicleCode Ind_Ind\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex133.par`08-30-2019`23:22:31\r\n#FullDataName Models: Simulink`MPC_SpeedCtrl_Sim_du`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap3_MPC_SpeedCtrl_du\\LEO_MPC_SpeedCtrl_du.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap3_MPC_SpeedCtrl_du\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap3_MPC_SpeedCtrl_du\r\nENTER_PARSFILE IO_Channels\\I_Channels\\I_Ch119.par`08-23-2019`21:26:22\r\n#FullDataName I/O Channels: Import`SpeedCtrl_Imports`MPC_BOOK_Sim_Imports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_imports_tab.txt\r\n\r\n#MiscYellow0\r\nIMP_THROTTLE_ENGINE Replace 0.0 1\r\nIMP_PCON_BK Replace 0.0 1\r\n#ENDMYellow\r\n\r\n#RingCtrl0 2\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Import; { MPC_BOOK_Sim_Imports } SpeedCtrl_Imports\r\n#Library : I/O Channels: Import\r\n#DataSet : SpeedCtrl_Imports\r\n#Category: MPC_BOOK_Sim_Imports\r\n#FileID  : I_Ch119\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 21:26:22\r\n#VehCode Import Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\I_Channels\\I_Ch119.par\r\n\r\n#BlueLink0 I/O Channels: Import`SpeedCtrl_Imports` MPC_BOOK_Sim_Imports` , Import\r\n\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch121.par`08-23-2019`20:56:04\r\n#FullDataName I/O Channels: Export`SpeedCtrl_Exports`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Ax\r\n#MiscYellow0\r\n#Number of Selected Channels: 2\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Ax\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } SpeedCtrl_Exports\r\n#Library : I/O Channels: Export\r\n#DataSet : SpeedCtrl_Exports\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch121\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 20:56:04\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch121.par\r\n\r\n#BlueLink1 I/O Channels: Export`SpeedCtrl_Exports` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_SpeedCtrl_du.sim\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } MPC_SpeedCtrl_Sim_du\r\n#Library : Models: Simulink\r\n#DataSet : MPC_SpeedCtrl_Sim_du\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex133\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 23:22:31\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex133.par\r\n\r\n#BlueLink12 Models: Simulink`MPC_SpeedCtrl_Sim_du` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 283\r\nID_RUN 283\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle123.par`08-02-2011`16:42:24\r\n#FullDataName Vehicle: Assembly`E-Class, Sedan`CS E-Class\r\n#VehCode Ind_Ind\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 1\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp111.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.8613\r\n*R_SPRING_R 0.8613\r\n*R_DAMPER_L 0.8681\r\n*R_DAMPER_R 0.8681\r\n*CT_FX_L -1.9e-6\r\n*CT_FX_R -1.9e-6\r\n*CS_FY_L -3.3e-5\r\n*CS_FY_R -3.3e-5\r\n*CS_MZ_L 1.4e-4\r\n*CS_MZ_R 1.4e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 5e-5\r\n*CI_FY_R 5e-5\r\n*CI_MZ_L -5.3e-5\r\n*CI_MZ_R -5.3e-5\r\n*C_LONG_L 2.0e-4\r\n*C_LONG_R 2.0e-4\r\n*C_LAT_L 2.2e-5\r\n*C_LAT_R 2.2e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.8681\r\n*R_JOUNCE_R 0.8681\r\n*R_REBOUND_L 0.8681\r\n*R_REBOUND_R 0.8681\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock101.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big Car Damping`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE LINEAR\r\n-1410, -5008\r\n-720, -3436\r\n-390, -2324\r\n-210, -1792\r\n-90, -1008\r\n-20, -228\r\n20, 228\r\n90, 596\r\n200, 784\r\n390, 1100\r\n760, 1796\r\n1160, 2560\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big Car Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big Car Damping\r\n#Category:\r\n#FileID  : Shock101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock101.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 384\r\n\r\nMX_AUX_COEFFICIENT 384\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 384 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 384 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx101.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 384 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+80 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n78, 0\r\n79, 0\r\n80, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-50, -10000\r\n-49, 0\r\n-48, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +80 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +80 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb105.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\nENTER_PARSFILE Suspensions\\Springs\\Spring109.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`34 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 34\r\nFS_EXT_COEFFICIENT 34\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 34\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 34 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 34 N/mm\r\n#Category:\r\n#FileID  : Spring109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring109.par\r\n\r\n#BlueLink0 Suspension: Spring`34 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+80 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.8613\r\nCMP_DAMP_COEFFICIENT 0.8681\r\nCT_FX_COEFFICIENT -1.9e-6\r\nCS_FY_COEFFICIENT -3.3e-5\r\nCS_MZ_COEFFICIENT 1.4e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 5e-5\r\nCI_MZ_COEFFICIENT -5.3e-5\r\nC_LONG_COEFFICIENT 2.0e-4\r\nC_LAT_COEFFICIENT 2.2e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.8681\r\nCMP_RSTOP_COEFFICIENT 0.8681\r\n#BlueLink3 Suspension: Spring`34 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Front Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.2 Hz and a front corner weight of 446 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp111_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp111.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Front Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.2\r\n*TOE_R 0.2\r\n*CAMBER_L -0.15\r\n*CAMBER_R -0.15\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.2\r\nA_CAMBER -0.15\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Front Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin109_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin109.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`E-Class, Sedan - Front Suspension` CS E-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire109.par`08-02-2011`16:42:33\r\n#FullDataName Tire`225/60 R18`Touring Tires\r\nX_LENGTH 364\r\nZ_LENGTH 364\r\nY_LENGTH 225\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup108.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Euro Sedan Tire`Tires\r\n*X_REF_LENGTH 291\r\n*Y_REF_LENGTH 195\r\n*Z_REF_LENGTH 291\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL136.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Tire\r\n#Category: Tires\r\n#FileID  : AniSTL136\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL136.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Euro. Sedan Tire` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL137.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .62 .62 .62\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 40\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL137\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL137.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Euro. Sedan Wheel` Tires` , Shape File\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL138.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Euro. Sedan Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\195_45R16\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Euro. Sedan Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Euro. Sedan Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL138.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Euro. Sedan Stripe` Tires` , Shape File\r\n\r\nx_ref_length 291\r\ny_ref_length 195\r\nz_ref_length 291\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Euro Sedan Tire\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Euro Sedan Tire\r\n#Category: Tires\r\n#FileID  : StlGroup108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup108.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Euro Sedan Tire` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 225\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 800 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 800; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 800 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 800 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet111.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 800 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 353\r\nR0 364\r\nFZ_TIRE_COEFFICIENT 278\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 764\r\nVLOW_ALPHA 5\r\nRR_C 0.0041\r\nRR_V 0.00003\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.1\r\nENTER_PARSFILE Tires\\Mz\\TireMz107.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 13.74, 26.59, 38.42, 49.18, 58.84, 67.4, 74.85, 81.2\r\n1, 27.52, 53.29, 77.08, 98.77, 118.28, 135.59, 150.69, 163.58\r\n1.5, 38.52, 75, 109.07, 140.54, 169.23, 195.05, 217.91, 237.76\r\n2, 42.77, 84.07, 123.55, 160.94, 195.99, 228.45, 258.1, 284.74\r\n2.5, 40.05, 79.6, 118.43, 156.31, 192.98, 228.18, 261.6, 292.94\r\n3, 33.77, 67.76, 101.91, 136.11, 170.21, 203.99, 237.23, 269.64\r\n3.5, 26.96, 54.52, 82.71, 111.52, 140.91, 170.77, 200.97, 231.34\r\n4, 21, 42.71, 65.25, 88.66, 112.96, 138.12, 164.12, 190.86\r\n4.5, 16.15, 33.03, 50.78, 69.47, 89.15, 109.84, 131.57, 154.32\r\n5, 12.31, 25.32, 39.18, 53.96, 69.73, 86.54, 104.45, 123.47\r\n5.5, 9.27, 19.2, 29.94, 41.55, 54.11, 67.68, 82.33, 98.09\r\n6, 6.85, 14.32, 22.54, 31.58, 41.53, 52.43, 64.36, 77.37\r\n6.5, 4.9, 10.38, 16.56, 23.52, 31.32, 40.03, 49.71, 60.42\r\n7, 3.3, 7.16, 11.68, 16.92, 22.96, 29.86, 37.67, 46.45\r\n7.5, 1.99, 4.5, 7.63, 11.46, 16.04, 21.43, 27.68, 34.85\r\n8, 0.89, 2.27, 4.25, 6.89, 10.24, 14.36, 19.3, 25.11\r\n8.5, -0.04, 0.39, 1.39, 3.03, 5.34, 8.39, 12.21, 16.87\r\n9, -0.84, -1.22, -1.05, -0.28, 1.15, 3.28, 6.16, 9.83\r\n9.5, -1.52, -2.6, -3.15, -3.12, -2.46, -1.12, 0.94, 3.76\r\n10, -2.12, -3.81, -4.98, -5.59, -5.59, -4.94, -3.59, -1.51\r\n10.5, -2.64, -4.86, -6.59, -7.76, -8.33, -8.28, -7.55, -6.12\r\n11, -3.1, -5.79, -8, -9.66, -10.75, -11.23, -11.05, -10.18\r\n11.5, -3.51, -6.62, -9.25, -11.36, -12.9, -13.84, -14.14, -13.77\r\n12, -3.88, -7.36, -10.37, -12.87, -14.81, -16.17, -16.9, -16.98\r\n12.5, -4.21, -8.02, -11.38, -14.22, -16.53, -18.26, -19.38, -19.86\r\n13, -4.5, -8.62, -12.28, -15.45, -18.08, -20.14, -21.6, -22.44\r\n13.5, -4.77, -9.16, -13.1, -16.55, -19.48, -21.84, -23.62, -24.78\r\n14, -5.02, -9.65, -13.85, -17.56, -20.75, -23.39, -25.45, -26.91\r\n14.5, -5.24, -10.1, -14.53, -18.48, -21.91, -24.81, -27.13, -28.85\r\n15, -5.44, -10.52, -15.16, -19.32, -22.98, -26.1, -28.66, -30.62\r\n15.5, -5.63, -10.9, -15.73, -20.1, -23.96, -27.29, -30.06, -32.25\r\n16, -5.8, -11.25, -16.26, -20.81, -24.86, -28.38, -31.36, -33.75\r\n16.5, -5.97, -11.57, -16.75, -21.47, -25.69, -29.4, -32.55, -35.14\r\n17, -6.11, -11.87, -17.21, -22.08, -26.47, -30.34, -33.66, -36.42\r\n17.5, -6.25, -12.15, -17.63, -22.65, -27.19, -31.21, -34.69, -37.62\r\n18, -6.38, -12.41, -18.02, -23.18, -27.86, -32.02, -35.65, -38.73\r\n18.5, -6.5, -12.65, -18.39, -23.68, -28.48, -32.78, -36.55, -39.76\r\n19, -6.62, -12.88, -18.74, -24.14, -29.07, -33.49, -37.39, -40.73\r\n19.5, -6.72, -13.1, -19.06, -24.58, -29.62, -34.16, -38.17, -41.64\r\n20, -6.82, -13.3, -19.36, -24.99, -30.13, -34.78, -38.91, -42.49\r\n20.5, -6.92, -13.49, -19.65, -25.37, -30.62, -35.37, -39.6, -43.29\r\n21, -7.01, -13.67, -19.92, -25.73, -31.08, -35.92, -40.25, -44.05\r\n21.5, -7.09, -13.83, -20.18, -26.08, -31.51, -36.45, -40.87, -44.76\r\n22, -7.17, -13.99, -20.42, -26.4, -31.92, -36.94, -41.45, -45.44\r\n22.5, -7.24, -14.15, -20.64, -26.71, -32.3, -37.41, -42.01, -46.07\r\n23, -7.32, -14.29, -20.86, -27, -32.67, -37.85, -42.53, -46.68\r\n23.5, -7.38, -14.42, -21.07, -27.27, -33.02, -38.28, -43.03, -47.25\r\n24, -7.45, -14.55, -21.26, -27.54, -33.35, -38.68, -43.5, -47.8\r\n24.5, -7.51, -14.68, -21.45, -27.79, -33.66, -39.06, -43.95, -48.31\r\n25, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\n26, -7.57, -14.8, -21.63, -28.03, -33.97, -39.42, -44.38, -48.81\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 225/60 R18\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireMz107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz107.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`225/60 R18` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy107.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.5, 276.28, 542.17, 796.11, 1037.22, 1264.9, 1478.75, 1678.46, 1863.81\r\n1, 543.78, 1067.29, 1567.45, 2042.53, 2491.36, 2913.12, 3307.21, 3673.19\r\n1.5, 794.63, 1560.03, 2291.71, 2987.17, 3644.68, 4263.02, 4841.27, 5378.78\r\n2, 1022.61, 2008.24, 2951.2, 3848.24, 4697.14, 5496.28, 6244.46, 6940.76\r\n2.5, 1223.67, 2403.99, 3534.24, 4610.54, 5630.23, 6591.31, 7492.28, 8331.97\r\n3, 1396.06, 2743.8, 4035.64, 5267.18, 6435.36, 7537.86, 8572.88, 9539\r\n3.5, 1540.13, 3028.22, 4456.04, 5818.77, 7113, 8336.12, 9486.09, 10561.24\r\n4, 1657.77, 3260.87, 4800.56, 6271.72, 7670.65, 8994.49, 10240.97, 11408.22\r\n4.5, 1751.86, 3447.27, 5077.17, 6636.17, 8120.35, 9526.68, 10852.66, 12096.26\r\n5, 1825.68, 3593.81, 5295.1, 6923.97, 8476.36, 9949.04, 11339.39, 12645.19\r\n5.5, 1882.54, 3706.94, 5463.74, 7147.24, 8753.26, 10278.46, 11720.06, 13075.75\r\n6, 1925.52, 3792.65, 5591.84, 7317.32, 8964.81, 10530.87, 12012.67, 13407.74\r\n6.5, 1957.31, 3856.21, 5687.13, 7444.25, 9123.23, 10720.57, 12233.34, 13659.03\r\n7, 1980.19, 3902.12, 5756.22, 7536.65, 9239.02, 10859.81, 12396.02, 13845.08\r\n7.5, 1996.04, 3934.07, 5804.56, 7601.65, 9320.93, 10958.85, 12512.39, 13978.92\r\n8, 2006.38, 3955.09, 5836.61, 7645.08, 9376.12, 11026.13, 12592.07, 14071.29\r\n8.5, 2012.44, 3967.57, 5855.92, 7671.64, 9410.35, 11068.44, 12642.86, 14130.95\r\n9, 2015.19, 3973.45, 5865.35, 7685.08, 9428.24, 11091.25, 12671.03, 14164.92\r\n9.5, 2015.4, 3974.24, 5867.15, 7688.35, 9433.46, 11098.89, 12681.58, 14178.84\r\n10, 2013.65, 3971.12, 5863.1, 7683.82, 9428.92, 11094.83, 12678.48, 14177.19\r\n10.5, 2010.43, 3965.04, 5854.58, 7673.31, 9416.9, 11081.77, 12664.87, 14163.51\r\n11, 2006.09, 3956.73, 5842.69, 7658.29, 9399.2, 11061.86, 12643.23, 14140.62\r\n11.5, 2000.94, 3946.76, 5828.3, 7639.9, 9377.24, 11036.8, 12615.52, 14110.74\r\n12, 1995.19, 3935.59, 5812.08, 7619.02, 9352.14, 11007.91, 12583.3, 14075.63\r\n12.5, 1989.02, 3923.55, 5794.54, 7596.36, 9324.76, 10976.24, 12547.76, 14036.68\r\n13, 1982.57, 3910.94, 5776.1, 7572.47, 9295.8, 10942.61, 12509.88, 13994.97\r\n13.5, 1975.94, 3897.96, 5757.09, 7547.77, 9265.79, 10907.67, 12470.41, 13951.37\r\n14, 1969.22, 3884.77, 5737.75, 7522.61, 9235.15, 10871.92, 12429.93, 13906.55\r\n14.5, 1962.46, 3871.51, 5718.27, 7497.23, 9204.21, 10835.75, 12388.91, 13861.05\r\n15, 1955.73, 3858.28, 5698.81, 7471.85, 9173.21, 10799.49, 12347.71, 13815.27\r\n15.5, 1949.05, 3845.15, 5679.48, 7446.61, 9142.37, 10763.35, 12306.61, 13769.55\r\n16, 1942.46, 3832.17, 5660.38, 7421.64, 9111.82, 10727.53, 12265.82, 13724.13\r\n16.5, 1935.97, 3819.4, 5641.55, 7397.02, 9081.68, 10692.16, 12225.52, 13679.2\r\n17, 1929.6, 3806.86, 5623.06, 7372.82, 9052.04, 10657.35, 12185.83, 13634.92\r\n17.5, 1923.37, 3794.57, 5604.94, 7349.1, 9022.96, 10623.17, 12146.83, 13591.38\r\n18, 1917.28, 3782.56, 5587.21, 7325.88, 8994.48, 10589.68, 12108.6, 13548.67\r\n18.5, 1911.33, 3770.83, 5569.89, 7303.18, 8966.64, 10556.93, 12071.18, 13506.85\r\n19, 1905.53, 3759.38, 5552.99, 7281.02, 8939.44, 10524.92, 12034.6, 13465.95\r\n19.5, 1899.87, 3748.23, 5536.51, 7259.41, 8912.91, 10493.68, 11998.88, 13425.99\r\n20, 1894.37, 3737.36, 5520.45, 7238.35, 8887.04, 10463.21, 11964.03, 13386.99\r\n20.5, 1889.01, 3726.78, 5504.81, 7217.83, 8861.82, 10433.51, 11930.05, 13348.95\r\n21, 1883.79, 3716.48, 5489.59, 7197.84, 8837.27, 10404.57, 11896.93, 13311.86\r\n21.5, 1878.72, 3706.46, 5474.77, 7178.39, 8813.35, 10376.38, 11864.66, 13275.71\r\n22, 1873.78, 3696.71, 5460.34, 7159.45, 8790.07, 10348.93, 11833.23, 13240.49\r\n22.5, 1868.98, 3687.23, 5446.31, 7141.02, 8767.4, 10322.2, 11802.62, 13206.18\r\n23, 1864.31, 3677.99, 5432.65, 7123.08, 8745.34, 10296.17, 11772.8, 13172.75\r\n23.5, 1859.76, 3669.01, 5419.36, 7105.62, 8723.86, 10270.83, 11743.76, 13140.19\r\n24, 1855.34, 3660.27, 5406.42, 7088.63, 8702.94, 10246.15, 11715.48, 13108.47\r\n24.5, 1851.04, 3651.76, 5393.83, 7072.08, 8682.58, 10222.12, 11687.93, 13077.57\r\n25, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\n26, 1846.85, 3643.48, 5381.57, 7055.96, 8662.75, 10198.71, 11661.1, 13047.47\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Lateral Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFy107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy107.par\r\n\r\n#BlueLink1 Tire: Lateral Force`225/60 R18` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx107.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`225/60 R18`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 1961.33, 3922.66, 5883.99, 7845.32, 9806.65, 11767.98, 13729.31, 15690.64\r\n0.02, 862.81, 1783.13, 2762.04, 3794.59, 4873.05, 5988.03, 7129.14, 8285.48\r\n0.04, 1405.11, 2856.38, 4345.65, 5859.21, 7381.77, 8898.09, 10393.74, 11855.5\r\n0.06, 1683.96, 3384.43, 5089.04, 6782.93, 8451.6, 10081.79, 11661.81, 13181.59\r\n0.08, 1827.85, 3649.23, 5451.02, 7219.83, 8943.43, 10611.08, 12213.62, 13743.29\r\n0.1, 1906.98, 3792.03, 5642.2, 7445.59, 9191.77, 10871.81, 12478.17, 14004.57\r\n0.12, 1953.08, 3873.7, 5749.19, 7568.78, 9323.31, 11005.08, 12607.67, 14125.76\r\n0.14, 1980.9, 3921.81, 5810.31, 7636.48, 9392.07, 11070.27, 12665.46, 14173.03\r\n0.16, 1997.79, 3949.97, 5844.33, 7671.56, 9424.12, 11095.9, 12681.88, 14178.04\r\n0.18, 2007.75, 3965.55, 5861.32, 7686.27, 9433.43, 11097.23, 12673.18, 14157.7\r\n0.2, 2013.13, 3972.81, 5867.14, 7687.73, 9428.09, 11083.11, 12648.74, 14121.81\r\n0.22, 2015.35, 3974.42, 5865.42, 7680.34, 9413.11, 11059, 12614.36, 14076.35\r\n0.24, 2015.35, 3972.07, 5858.5, 7666.95, 9391.71, 11028.42, 12573.74, 14025.16\r\n0.26, 2013.76, 3966.92, 5847.96, 7649.47, 9366.06, 10993.69, 12529.34, 13970.72\r\n0.28, 2011.02, 3959.8, 5834.91, 7629.22, 9337.64, 10956.43, 12482.8, 13914.72\r\n0.3, 2007.45, 3951.26, 5820.11, 7607.14, 9307.51, 10917.73, 12435.27, 13858.28\r\n0.32, 2003.28, 3941.72, 5804.15, 7583.9, 9276.39, 10878.38, 12387.52, 13802.18\r\n0.34, 1998.68, 3931.51, 5787.42, 7559.98, 9244.83, 10838.92, 12340.11, 13746.92\r\n0.36, 1993.78, 3920.84, 5770.24, 7535.74, 9213.2, 10799.74, 12293.41, 13692.85\r\n0.38, 1988.68, 3909.89, 5752.83, 7511.45, 9181.77, 10761.12, 12247.67, 13640.2\r\n0.4, 1983.44, 3898.79, 5735.37, 7487.29, 9150.75, 10723.23, 12203.05, 13589.1\r\n0.42, 1978.13, 3887.65, 5717.98, 7463.4, 9120.27, 10686.22, 12159.68, 13539.63\r\n0.44, 1972.79, 3876.53, 5700.76, 7439.89, 9090.44, 10650.16, 12117.59, 13491.82\r\n0.46, 1967.46, 3865.5, 5683.77, 7416.82, 9061.31, 10615.11, 12076.84, 13445.67\r\n0.48, 1962.16, 3854.6, 5667.07, 7394.26, 9032.94, 10581.08, 12037.42, 13401.17\r\n0.5, 1956.92, 3843.87, 5650.7, 7372.23, 9005.34, 10548.1, 11999.32, 13358.28\r\n0.52, 1951.74, 3833.32, 5634.68, 7350.75, 8978.52, 10516.16, 11962.53, 13316.96\r\n0.54, 1946.64, 3822.97, 5619.03, 7329.84, 8952.5, 10485.24, 11927, 13277.16\r\n0.56, 1941.64, 3812.84, 5603.75, 7309.5, 8927.25, 10455.32, 11892.7, 13238.82\r\n0.58, 1936.72, 3802.94, 5588.86, 7289.72, 8902.77, 10426.39, 11859.61, 13201.89\r\n0.6, 1931.91, 3793.26, 5574.36, 7270.51, 8879.05, 10398.4, 11827.66, 13166.31\r\n0.62, 1927.2, 3783.82, 5560.24, 7251.85, 8856.06, 10371.34, 11796.82, 13132.02\r\n0.64, 1922.59, 3774.61, 5546.5, 7233.73, 8833.78, 10345.16, 11767.05, 13098.97\r\n0.66, 1918.09, 3765.62, 5533.13, 7216.15, 8812.19, 10319.85, 11738.3, 13067.1\r\n0.68, 1913.69, 3756.87, 5520.13, 7199.08, 8791.28, 10295.36, 11710.53, 13036.36\r\n0.7, 1909.4, 3748.34, 5507.49, 7182.5, 8771.01, 10271.67, 11683.7, 13006.7\r\n0.72, 1905.21, 3740.03, 5495.19, 7166.42, 8751.37, 10248.74, 11657.77, 12978.07\r\n0.74, 1901.12, 3731.93, 5483.24, 7150.8, 8732.33, 10226.54, 11632.7, 12950.42\r\n0.76, 1897.13, 3724.05, 5471.61, 7135.64, 8713.87, 10205.05, 11608.46, 12923.72\r\n0.78, 1893.24, 3716.37, 5460.31, 7120.91, 8695.97, 10184.23, 11585, 12897.9\r\n0.8, 1889.45, 3708.9, 5449.31, 7106.61, 8678.6, 10164.06, 11562.3, 12872.95\r\n0.82, 1885.74, 3701.61, 5438.62, 7092.72, 8661.76, 10144.52, 11540.33, 12848.81\r\n0.84, 1882.13, 3694.52, 5428.22, 7079.23, 8645.4, 10125.56, 11519.04, 12825.45\r\n0.86, 1878.61, 3687.6, 5418.09, 7066.11, 8629.53, 10107.19, 11498.41, 12802.83\r\n0.88, 1875.18, 3680.87, 5408.24, 7053.36, 8614.12, 10089.36, 11478.42, 12780.93\r\n0.9, 1871.82, 3674.31, 5398.66, 7040.96, 8599.14, 10072.05, 11459.04, 12759.71\r\n0.92, 1868.55, 3667.91, 5389.32, 7028.9, 8584.6, 10055.26, 11440.24, 12739.14\r\n0.94, 1865.36, 3661.68, 5380.23, 7017.17, 8570.46, 10038.95, 11421.99, 12719.2\r\n0.96, 1862.25, 3655.6, 5371.38, 7005.76, 8556.71, 10023.1, 11404.28, 12699.85\r\n0.98, 1859.21, 3649.67, 5362.76, 6994.65, 8543.34, 10007.7, 11387.08, 12681.07\r\n1, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\n1.02, 1856.24, 3643.89, 5354.35, 6983.83, 8530.34, 9992.73, 11370.37, 12662.85\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 225/60 R18\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : TireFx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx107.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`225/60 R18` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`225/60 R18`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n784.532, -2.7453\r\n1569.064, -6.7216\r\n2353.596, -11.0497\r\n3138.128, -15.5865\r\n3922.66, -20.2695\r\n4707.192, -25.0638\r\n5491.724, -29.9472\r\n6276.256, -34.9047\r\n7060.788, -39.925\r\n7845.32, -45\r\n8629.852, -50.1231\r\n9414.384, -55.2891\r\n10198.916, -60.4937\r\n10983.448, -65.7334\r\n11767.98, -71.0051\r\n12552.512, -76.3065\r\n13337.044, -81.6351\r\n14121.576, -86.9892\r\n14906.108, -92.3669\r\n15690.64, -97.767\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 225/60 R18\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : CamStiff107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff107.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`225/60 R18` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 225/60 R18\r\n#Library : Tire\r\n#DataSet : 225/60 R18\r\n#Category: Touring Tires\r\n#FileID  : Tire109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n800 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire109_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire109.par\r\n\r\n#BlueLink9 Tire`225/60 R18` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`225/60 R18` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp112.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.`CS E-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.797\r\n*R_SPRING_R 0.797\r\n*R_DAMPER_L 0.797\r\n*R_DAMPER_R 0.797\r\n*CT_FX_L -6.3e-6\r\n*CT_FX_R -6.3e-6\r\n*CS_FY_L -8.3e-6\r\n*CS_FY_R -8.3e-6\r\n*CS_MZ_L -1.2e-4\r\n*CS_MZ_R -1.2e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L -3.3e-5\r\n*CI_FY_R -3.3e-5\r\n*CI_MZ_L -5e-5\r\n*CI_MZ_R -5e-5\r\n*C_LONG_L 3.6e-5\r\n*C_LONG_R 3.6e-5\r\n*C_LAT_L 9.4e-5\r\n*C_LAT_R 9.4e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.797\r\n*R_JOUNCE_R 0.797\r\n*R_REBOUND_L 0.797\r\n*R_REBOUND_R 0.797\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big Car Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 344\r\n\r\nMX_AUX_COEFFICIENT 344\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 344 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 344 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx103.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 344 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\nENTER_PARSFILE Suspensions\\Springs\\Spring110.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`46 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 46\r\nFS_EXT_COEFFICIENT 46\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 3.0\r\nSPRING_EXT_BETA 3.0\r\n*SCALAR 46\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 46 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 46 N/mm\r\n#Category:\r\n#FileID  : Spring110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring110.par\r\n\r\n#BlueLink0 Suspension: Spring`46 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big Car Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.797\r\nCMP_DAMP_COEFFICIENT 0.797\r\nCT_FX_COEFFICIENT -6.3e-6\r\nCS_FY_COEFFICIENT -8.3e-6\r\nCS_MZ_COEFFICIENT -1.2e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT -3.3e-5\r\nCI_MZ_COEFFICIENT -5e-5\r\nC_LONG_COEFFICIENT 3.6e-5\r\nC_LAT_COEFFICIENT 9.4e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.797\r\nCMP_RSTOP_COEFFICIENT 0.797\r\n#BlueLink3 Suspension: Spring`46 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS E-Class } E-Class, Sedan - Rear Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : E-Class, Sedan - Rear Comp.\r\n#Category: CS E-Class\r\n#FileID  : SuspCmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\nRear spring rate chosen for a rear ride frequency of 1.4 Hz and a rear corner weight of 380 kg.\r\n\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp112_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp112.par\r\n\r\n#BlueLink17 Suspension: Independent Compliance, Springs, and Dampers`E-Class, Sedan - Rear Comp.` CS E-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension`CS E-Class\r\niside 1\r\nL_TRACK 1600\r\nY_CL_SUSP 0\r\nM_US 90\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L 0.1\r\n*TOE_R 0.1\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nR_US_STR 0.1\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive`5-Link Rear\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { 5-Link Rear } Rear 5-Link - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear 5-Link - No Dive\r\n#Category: 5-Link Rear\r\n#FileID  : Dive102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive102.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX102.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, 2.6892\r\n-60, 1.76827\r\n-50, 1.01123\r\n-40, 0.426265\r\n-30, 0.022328\r\n-20, -0.190752\r\n-10, -0.202151\r\n0, 0\r\n10, 0.428603\r\n20, 1.09748\r\n30, 2.02114\r\n40, 3.21439\r\n50, 4.69179\r\n60, 6.46687\r\n70, 8.5513\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { 5-Link Rear } Rear 5-Link - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear 5-Link - Longitudinal Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusX102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX102.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Rear 5-Link - Camber Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.66479\r\n-60, 1.43877\r\n-50, 1.21143\r\n-40, 0.981031\r\n-30, 0.746032\r\n-20, 0.505036\r\n-10, 0.25676\r\n0, 0\r\n10, -0.266403\r\n20, -0.543604\r\n30, -0.832791\r\n40, -1.13524\r\n50, -1.45237\r\n60, -1.78583\r\n70, -2.13754\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { 5-Link Rear } Rear 5-Link - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Rear 5-Link - Camber Change\r\n#Category: 5-Link Rear\r\n#FileID  : Camber102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\nGeneric 5-Link rear Camber change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber102.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear 5-Link - Lateral Movement`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 5.34878\r\n-60, 3.82136\r\n-50, 2.55534\r\n-40, 1.54581\r\n-30, 0.788587\r\n-20, 0.280222\r\n-10, 0.018009\r\n0, 0\r\n10, 0.22505\r\n20, 0.692872\r\n30, 1.40412\r\n40, 2.36046\r\n50, 3.56474\r\n60, 5.02106\r\n70, 6.73495\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { 5-Link Rear } Rear 5-Link - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear 5-Link - Lateral Movement\r\n#Category: 5-Link Rear\r\n#FileID  : SusLat102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\nGeneric 5-Link rear Lateral movement vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat102.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe102.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Rear 5-Link - Toe Change`5-Link Rear\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, -1.02057\r\n-60, -0.828098\r\n-50, -0.65623\r\n-40, -0.501756\r\n-30, -0.361641\r\n-20, -0.233037\r\n-10, -0.113294\r\n0, 0\r\n10, 0.108974\r\n20, 0.215401\r\n30, 0.320605\r\n40, 0.425353\r\n50, 0.529714\r\n60, 0.632927\r\n70, 0.733253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { 5-Link Rear } Rear 5-Link - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Rear 5-Link - Toe Change\r\n#Category: 5-Link Rear\r\n#FileID  : Toe102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\nGeneric 5-Link Rear Toe change vs. Jounce\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe102_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe102.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Rear 5-Link - No Dive` 5-Link Rear` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Rear 5-Link - Longitudinal Movement` 5-Link Rear` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Rear 5-Link - Camber Change` 5-Link Rear` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Rear 5-Link - Lateral Movement` 5-Link Rear` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Rear 5-Link - Toe Change` 5-Link Rear` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE 0.1\r\nA_CAMBER 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS E-Class } E-Class, Sedan - Rear Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : E-Class, Sedan - Rear Suspension\r\n#Category: CS E-Class\r\n#FileID  : IndKin110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\nGeneric 5-Link rear suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin110_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin110.par\r\n\r\n#BlueLink20 Suspension: Independent System Kinematics`E-Class, Sedan - Rear Suspension` CS E-Class` , Rear kinematics\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`225/60 R18` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`225/60 R18` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass`CS E-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 3050\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 4250\r\nH_H 500\r\nH_CG_SU 530\r\nLX_AXLE 3050\r\nLX_CG_SU 1400\r\nM_SU 1650\r\nIXX_SU 928.1\r\nIYY_SU 2788.5\r\nIZZ_SU 3234.0\r\nIXZ_SU 0\r\nRX_SGUI 0.750\r\nRY_SGUI 1.300\r\nRZ_SGUI 1.400\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1480\r\nY_LENGTH 1880\r\n*HWC_LF 320\r\n*HWC_RF 320\r\n*HWC_LR 300\r\n*HWC_RR 300\r\n\r\nH_WC 300\r\niside 2\r\nH_WC 300\r\niaxle 1\r\niside 1\r\nH_WC 320\r\niside 2\r\nH_WC 320\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS E-Class } E-Class, Sedan Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : E-Class, Sedan Sprung Mass\r\n#Category: CS E-Class\r\n#FileID  : SprMass106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass106.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`E-Class, Sedan Sprung Mass` CS E-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`E-Class, Sedan Aero`CS E-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1525\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 3050\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS E-Class } E-Class, Sedan Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : E-Class, Sedan Aero\r\n#Category: CS E-Class\r\n#FileID  : Aero105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero105_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero105.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`E-Class, Sedan Aero` CS E-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh105.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`E-Class, Sedan`E-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 3048\r\nOBJ_Y_LENGTH 1880\r\nOBJ_Z_LENGTH 1480\r\n*DZ_V 0\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 375\r\n*WHEEL_RATIO 1.1\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.35625\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.1\r\nSET_SCALE_Y 1.1\r\nSET_SCALE_Z 1.1\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -3.048\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.35625\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup111.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`E-Class, Sedan`CS E-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.25\r\n*X_REF_LENGTH 2711\r\n*Y_REF_LENGTH 1725\r\n*Z_REF_LENGTH 1400\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 0\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL128.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Body`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .6\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Body\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL128.par\r\n\r\n#BlueLink0 Animator: Shape File Link`European Sedan: Body` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL129.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Details`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Details\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL129.par\r\n\r\n#BlueLink1 Animator: Shape File Link`European Sedan: Details` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL130.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Windows`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 0\r\n*SPECULAR 1\r\n*TRANSPARENCY 0.7\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.7\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Windows\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL130.par\r\n\r\n#BlueLink2 Animator: Shape File Link`European Sedan: Windows` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL131.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Interior Trim`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\interior_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Interior Trim\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Interior Trim\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL131.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Interior Trim` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL132.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Steering Wheel`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Steering Wheel\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL132.par\r\n\r\n#BlueLink4 Animator: Shape File Link`European Sedan: Steering Wheel` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL133.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Seats`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Seats\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL133\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL133.par\r\n\r\n#BlueLink5 Animator: Shape File Link`European Sedan: Seats` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nENTER_PARSFILE Animator\\STL\\AniSTL134.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Driver`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.69 0.69 0.69\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Driver\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL134\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL134.par\r\n\r\n#BlueLink13 Animator: Shape File Link`European Sedan: Driver` CS European Sedan` , Shape File\r\n\r\nset_lighting on\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.25\r\nx_ref_length 2711\r\ny_ref_length 1725\r\nz_ref_length 1400\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Animator: Shape Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : StlGroup111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup111.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`E-Class, Sedan` CS E-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL151.par`08-02-2011`16:43:41\r\n#FullDataName Animator: Shape File Link`European Sedan: Brake Lights (E-Class)`CS European Sedan\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\european_sedan\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 .8 .8\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.02\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.25\r\nX_REF_LENGTH 2711\r\nY_REF_LENGTH 1725\r\nZ_REF_LENGTH 1400\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS European Sedan } European Sedan: Brake Lights (E-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : European Sedan: Brake Lights (E-Class)\r\n#Category: CS European Sedan\r\n#FileID  : AniSTL151\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:41\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL151.par\r\n\r\n#BlueLink3 Animator: Shape File Link`European Sedan: Brake Lights (E-Class)` CS European Sedan` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { E-Class Vehicles } E-Class, Sedan\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : E-Class, Sedan\r\n#Category: E-Class Vehicles\r\n#FileID  : AniVeh105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh105.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles` , Vehicle animator data\r\n\r\nR_REAR_DRIVE_SC 1\r\nPMAX_SC 200\r\nENTER_PARSFILE Powertrain\\4wd\\4WD103.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine112.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`250 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.38\r\nTC_THR_REL 0.02\r\nTC_THR_APP 0.06\r\n\r\n#CheckBox0 1\r\nOPT_THROTTLE_DELAY 1\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 41.13, 126.46, 168.44, 171.86, 173.81, 174.77, 175.1, 175.18, 175.23, 175.18\r\n633, 49.35, 154.32, 232.06, 247.82, 250.35, 251.38, 251.74, 251.77, 251.77, 251.77\r\n750, 0, 145.21, 245.96, 268.1, 274.08, 276.25, 277.05, 277.12, 277.1, 277.07\r\n1107, -16.45, 117.35, 288.44, 330.1, 346.63, 352.29, 354.4, 354.59, 354.55, 354.4\r\n1463, -24.68, 78.29, 278.01, 345.45, 367.46, 377.44, 382.32, 383.45, 384.2, 391.51\r\n1820, -27.97, 42.77, 246.75, 351.59, 388.29, 402.59, 410.23, 412.31, 413.85, 424.41\r\n2177, -33.51, 16.45, 195.49, 338.42, 394.8, 427.7, 432.64, 437.57, 442.51, 453.42\r\n2533, -42.07, -10.64, 135.08, 302.54, 398.09, 443.64, 455.67, 463.99, 468.83, 477.05\r\n2890, -50.08, -25.19, 93.73, 255.06, 387.36, 448.48, 473.93, 480.34, 490.21, 498.44\r\n3247, -57.14, -36.65, 62.58, 203.53, 371.29, 444.15, 477.05, 490.21, 500.08, 509.95\r\n3603, -64.08, -46.7, 39.02, 160.4, 334.05, 430.99, 478.7, 493.5, 505.02, 514.89\r\n3960, -71.06, -56.01, 19.61, 126.98, 289.7, 413.12, 473.76, 491.86, 503.37, 509.95\r\n4317, -78.44, -65.43, 0.46, 95.46, 249.64, 394.29, 465.54, 481.99, 493.5, 503.27\r\n4673, -86.11, -74.79, -16.57, 68.44, 207.81, 366.08, 452.38, 468.83, 485.28, 493.5\r\n5030, -94.28, -84.03, -31.71, 44.85, 170.57, 330.59, 435.93, 452.38, 468.83, 477.05\r\n5387, -102.47, -93.46, -45.75, 24, 138.78, 293.42, 410.15, 426.06, 448.04, 452.77\r\n5743, -111.65, -103.3, -59.35, 4.69, 109.99, 254.69, 367.91, 393, 404.78, 409.44\r\n6100, -121.65, -113.67, -72.91, -13.57, 83.71, 217.11, 322.13, 345.48, 356.46, 360.66\r\n6500, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25, -133.25\r\n6700, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89, -134.89\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 250 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 250 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine112.par\r\n\r\n#BlueLink0 Powertrain: Engine`250 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 250 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.009121\r\n0.1, 0.009121\r\n0.2, 0.009121\r\n0.3, 0.009121\r\n0.4, 0.00912\r\n0.5, 0.009112\r\n0.6, 0.009066\r\n0.7, 0.008864\r\n0.8, 0.008142\r\n0.9, 0.005941\r\n0.95, 0.00366\r\n0.99, 0.000872\r\n1.01, -0.000872\r\n1.05, -0.00366\r\n1.1, -0.005941\r\n1.2, -0.008142\r\n1.3, -0.008864\r\n1.4, -0.009066\r\n1.5, -0.009112\r\n1.6, -0.00912\r\n1.7, -0.009121\r\n1.8, -0.009121\r\n1.9, -0.009121\r\n2, -0.009121\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 250 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 250 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC104.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 250 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans104.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission`\r\n#RingCtrl0 7\r\nNGEARS 7\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.42\r\nR_GEAR_TR(1) 4.38\r\nR_GEAR_TR(2) 2.86\r\nR_GEAR_TR(3) 1.92\r\nR_GEAR_TR(4) 1.37\r\nR_GEAR_TR(5) 1.00\r\nR_GEAR_TR(6) 0.82\r\nR_GEAR_TR(7) 0.70\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nITR(7) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_F(7) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nR_EFF_TR_R(7) 0.99\r\nT_SHIFT 0.35\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift113.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 1-2 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 629\r\n0.2, 629\r\n0.8, 1233\r\n1, 1233\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 503\r\n0.4, 503\r\n0.8, 925\r\n1, 925\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 1-2 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift113.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`7-speed, 1-2 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift114.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 2-3 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 938\r\n0.2, 938\r\n0.8, 1888\r\n1, 1888\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 750\r\n0.4, 750\r\n0.8, 1416\r\n1, 1416\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 2-3 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift114.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`7-speed, 2-3 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift115.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 3-4 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1314\r\n0.2, 1314\r\n0.8, 2813\r\n1, 2813\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1051\r\n0.4, 1051\r\n0.8, 2109\r\n1, 2109\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 3-4 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift115.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`7-speed, 3-4 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift116.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 4-5 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 3942\r\n1, 3942\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 2956\r\n1, 2956\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 4-5 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift116.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`7-speed, 4-5 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift117.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 5-6 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2195\r\n0.2, 2195\r\n0.8, 5400\r\n1, 5400\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1756\r\n0.4, 1756\r\n0.8, 4050\r\n1, 4050\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 5-6 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift117.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`7-speed, 5-6 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\nENTER_PARSFILE Powertrain\\Shift\\Shift118.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`7-speed, 6-7 Shift`7-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2571\r\n0.2, 2571\r\n0.8, 6585\r\n1, 6585\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2057\r\n0.4, 2057\r\n0.8, 4939\r\n1, 4939\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 7-speed } 7-speed, 6-7 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 7-speed, 6-7 Shift\r\n#Category: 7-speed\r\n#FileID  : Shift118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift118.par\r\n\r\n#BlueLink5 Powertrain: Shift Schedule`7-speed, 6-7 Shift` 7-speed` , Shift schedule\r\n\r\n\r\nigear 7\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 7-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 7-Speed Transmission\r\n#Category:\r\n#FileID  : Trans104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans104.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`7-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Viscous - Gear Ratio 2.65`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_FD 2.65\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 1\r\nLOCKED_FD_K 100\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 1\r\nLOCKED_DIFF_K 100\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff102.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Viscous - Gear Ratio 2.65` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff101.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Viscous - Gear Ratio 2.65`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_RD 2.65\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n\r\nR_GEAR_DIFF 2.65\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Viscous - Gear Ratio 2.65\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Viscous - Gear Ratio 2.65\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff101.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Viscous - Gear Ratio 2.65` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 250 kW, 7-spd., 2.65 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 250 kW, 7-spd., 2.65 Ratio\r\n#Category:\r\n#FileID  : 4WD103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\nGeneric 250 kW powertrain with an automatic transmission.  The torque converter data has been tuned to work with the 250 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD103_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD103.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`250 kW, 7-spd., 2.65 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W111.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`E-Class, Sedan w/ ABS`CS E-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\nOFF_F_SGUI 0.15\r\nOFF_R_SGUI 0.15\r\nON_F_SGUI 0.1\r\nON_R_SGUI 0.1\r\nV_F_SGUI 3\r\nV_R_SGUI 3\r\n\r\n#RingCtrl0 2\r\n#RingCtrl1 2\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq107.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`350 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 350\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 350\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 350 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 350 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq107.par\r\n\r\n#BlueLink0 Brakes: Torque`350 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`350 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 2\r\nABS_SLIP_OFF 0.15\r\nABS_SLIP_ON 0.1\r\nABS_VMIN 3\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS E-Class } E-Class, Sedan w/ ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : E-Class, Sedan w/ ABS\r\n#Category: CS E-Class\r\n#FileID  : Brk4W111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W111.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`E-Class, Sedan w/ ABS` CS E-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2106.par`08-02-2011`16:42:43\r\n#FullDataName Steering`E-Class, Sedan: Power R&P`CS E-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.0001\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 39.5\r\n*L2_LKPO 0\r\n*R1_LKPO 39.5\r\n*R2_LKPO 0\r\n*L1_AKPI 8.0\r\n*L2_AKPI 0\r\n*R1_AKPI 8.0\r\n*R2_AKPI 0\r\n*L1_ACAST 3.5\r\n*L2_ACAST 0\r\n*R1_ACAST 3.5\r\n*R2_ACAST 0\r\n*L1_XKPO -1.0\r\n*L2_XKPO 0\r\n*R1_XKPO -1.0\r\n*R2_XKPO 0\r\n*D_RACK_F 4\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 3\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 1\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.0001\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niside 2\r\nL_KPO 39.5\r\nA_KPI 8.0\r\nA_CASTER 3.5\r\nX_KPO -1.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 1\r\nRACK_TRAVEL_COEFFICIENT 0.1\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 1\r\nENTER_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nRACK_TRAVEL_TABLE SPLINE\r\n-916.4942656, -86.36\r\n-867.4138828, -83.03846154\r\n-824.4560495, -79.96296296\r\n-786.3359267, -77.10714286\r\n-752.1486273, -74.44827586\r\n-721.227932, -71.96666667\r\n-693.0665246, -69.64516129\r\n-667.2677336, -67.46875\r\n-643.5147167, -65.42424242\r\n-621.549914, -63.5\r\n-601.160854, -61.68571429\r\n-582.1700533, -59.97222222\r\n-564.4276481, -58.35135135\r\n-547.8059016, -56.81578947\r\n-532.1950333, -55.35897436\r\n-517.5, -53.975\r\n-503.6379761, -52.65853659\r\n-490.5363551, -51.4047619\r\n-478.1311476, -50.20930233\r\n-466.3656834, -49.06818182\r\n-455.1895493, -47.97777778\r\n-444.557715, -46.93478261\r\n-434.4298052, -45.93617021\r\n-424.7694916, -44.97916667\r\n-415.5439804, -44.06122449\r\n-406.7235787, -43.18\r\n0, 0\r\n406.7235787, 43.18\r\n415.5439804, 44.06122449\r\n424.7694916, 44.97916667\r\n434.4298052, 45.93617021\r\n444.557715, 46.93478261\r\n455.1895493, 47.97777778\r\n466.3656834, 49.06818182\r\n478.1311476, 50.20930233\r\n490.5363551, 51.4047619\r\n503.6379761, 52.65853659\r\n517.5, 53.975\r\n532.1950333, 55.35897436\r\n547.8059016, 56.81578947\r\n564.4276481, 58.35135135\r\n582.1700533, 59.97222222\r\n601.160854, 61.68571429\r\n621.549914, 63.5\r\n643.5147167, 65.42424242\r\n667.2677336, 67.46875\r\n693.0665246, 69.64516129\r\n721.227932, 71.96666667\r\n752.1486273, 74.44827586\r\n786.3359267, 77.10714286\r\n824.4560495, 79.96296296\r\n867.4138828, 83.03846154\r\n916.4942656, 86.36\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Rack kinematics; { CS E-Class } E-Class, Sedan Rack Kinematics\r\n#Library : Steering System: Rack kinematics\r\n#DataSet : E-Class, Sedan Rack Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RackKin113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steering rack\r\n\r\nEXIT_PARSFILE Steering\\Rack_Kinematics\\RackKin113.par\r\n\r\n#BlueLink4 Steering System: Rack kinematics`E-Class, Sedan Rack Kinematics` CS E-Class` , Rack input to output: front\r\n\r\nD_RACK 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par`08-02-2011`16:42:42\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics`CS E-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -64.00924761\r\n-83.03846154, -60.39496988\r\n-79.96296296, -57.20021687\r\n-77.10714286, -54.34703994\r\n-74.44827586, -51.77840772\r\n-71.96666667, -49.45080212\r\n-69.64516129, -47.32999144\r\n-67.46875, -45.38842777\r\n-65.42424242, -43.60354705\r\n-63.5, -41.95660533\r\n-61.68571429, -40.43185156\r\n-59.97222222, -39.01592124\r\n-58.35135135, -37.69738095\r\n-56.81578947, -36.46637887\r\n-55.35897436, -35.31437211\r\n-53.975, -34.23391082\r\n-52.65853659, -33.21846512\r\n-51.4047619, -32.26228482\r\n-50.20930233, -31.3602847\r\n-49.06818182, -30.5079499\r\n-47.97777778, -29.70125727\r\n-46.93478261, -28.93660959\r\n-45.93617021, -28.21078022\r\n-44.97916667, -27.52086625\r\n-44.06122449, -26.86424867\r\n-43.18, -26.23855826\r\n0, 0\r\n43.18, 21.3843292\r\n44.06122449, 21.8085708\r\n44.97916667, 22.25095273\r\n45.93617021, 22.71274374\r\n46.93478261, 23.19534249\r\n47.97777778, 23.70029582\r\n49.06818182, 24.22932041\r\n50.20930233, 24.78432852\r\n51.4047619, 25.367459\r\n52.65853659, 25.98111474\r\n53.975, 26.62800831\r\n55.35897436, 27.31121822\r\n56.81578947, 28.03425875\r\n58.35135135, 28.80116776\r\n59.97222222, 29.61661825\r\n61.68571429, 30.48606232\r\n63.5, 31.41591936\r\n65.42424242, 32.41382662\r\n67.46875, 33.48897913\r\n69.64516129, 34.65260127\r\n71.96666667, 35.91861787\r\n74.44827586, 37.30463871\r\n77.10714286, 38.83345523\r\n79.96296296, 40.53541768\r\n83.03846154, 42.45242008\r\n86.36, 44.6450584\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nRACK_KIN_TABLE SPLINE\r\n-86.36, -44.6450584\r\n-83.03846154, -42.45242008\r\n-79.96296296, -40.53541768\r\n-77.10714286, -38.83345523\r\n-74.44827586, -37.30463871\r\n-71.96666667, -35.91861787\r\n-69.64516129, -34.65260127\r\n-67.46875, -33.48897913\r\n-65.42424242, -32.41382662\r\n-63.5, -31.41591936\r\n-61.68571429, -30.48606232\r\n-59.97222222, -29.61661825\r\n-58.35135135, -28.80116776\r\n-56.81578947, -28.03425875\r\n-55.35897436, -27.31121822\r\n-53.975, -26.62800831\r\n-52.65853659, -25.98111474\r\n-51.4047619, -25.367459\r\n-50.20930233, -24.78432852\r\n-49.06818182, -24.22932041\r\n-47.97777778, -23.70029582\r\n-46.93478261, -23.19534249\r\n-45.93617021, -22.71274374\r\n-44.97916667, -22.25095273\r\n-44.06122449, -21.8085708\r\n-43.18, -21.3843292\r\n0, 0\r\n43.18, 26.23855826\r\n44.06122449, 26.86424867\r\n44.97916667, 27.52086625\r\n45.93617021, 28.21078022\r\n46.93478261, 28.93660959\r\n47.97777778, 29.70125727\r\n49.06818182, 30.5079499\r\n50.20930233, 31.3602847\r\n51.4047619, 32.26228482\r\n52.65853659, 33.21846512\r\n53.975, 34.23391082\r\n55.35897436, 35.31437211\r\n56.81578947, 36.46637887\r\n58.35135135, 37.69738095\r\n59.97222222, 39.01592124\r\n61.68571429, 40.43185156\r\n63.5, 41.95660533\r\n65.42424242, 43.60354705\r\n67.46875, 45.38842777\r\n69.64516129, 47.32999144\r\n71.96666667, 49.45080212\r\n74.44827586, 51.77840772\r\n77.10714286, 54.34703994\r\n79.96296296, 57.20021687\r\n83.03846154, 60.39496988\r\n86.36, 64.00924761\r\nENDTABLE\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*SCALAR 0.45\r\n*SCALAR2 0.45\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Rack & Pinion); { CS E-Class } E-Class, Sedan Wheel Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Rack & Pinion)\r\n#DataSet : E-Class, Sedan Wheel Kinematics\r\n#Category: CS E-Class\r\n#FileID  : RkKinAx119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:42\r\n#VehCode Steer kinematics\r\n\r\nEXIT_PARSFILE Steering\\KinematicsRack2\\RkKinAx119.par\r\n\r\n#BlueLink10 Steering System: Kinematics for 2 Wheels (Rack & Pinion)`E-Class, Sedan Wheel Kinematics` CS E-Class` , Rack to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_FBoost\\FBoost102.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 1\r\n\r\nTC_BOOST 0.08\r\nF_BOOST_MAX 2500\r\n\r\n*3D_XLabel Vehicle speed (kph)\r\n*3D_YLabel Torsion bar torque (N-m)\r\n*3D_ZLabel Power assist force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 6, 63 ! columns x rows\r\nF_BOOST_R_CARPET\r\n0, 0, 20, 50, 80, 120, 200\r\n-16, -2500, -2500, -2500, -2500, -2500, -2500\r\n-15, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-14, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-13, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12.5, -2500, -2500, -2500, -2500, -2500, -2500\r\n-12, -2500, -2500, -2500, -2500, -2500, -2500\r\n-11.5, -2500, -2500, -2500, -2500, -2266.8, -2141.32\r\n-11, -2500, -2420, -2427.94, -2280.85, -1736.13, -1500.51\r\n-10.5, -2500, -2205, -2063.12, -1815.93, -1313.29, -1034.22\r\n-10, -2500, -2000, -1739.25, -1429.79, -980, -700\r\n-9.5, -2500, -1805, -1453.43, -1112.03, -720.39, -464.39\r\n-9, -2500, -1620, -1202.85, -853.22, -520.81, -301.33\r\n-8.5, -2500, -1445, -984.76, -644.8, -369.61, -190.74\r\n-8, -2500, -1280, -796.49, -479.09, -256.9, -117.44\r\n-7.5, -2500, -1125, -635.44, -349.2, -174.42, -70.08\r\n-7, -2500, -980, -499.12, -249.03, -115.3, -40.35\r\n-6.5, -2500, -845, -385.09, -173.2, -73.91, -22.31\r\n-6, -2500, -720, -291, -117.01, -45.72, -11.76\r\n-5.5, -2500, -605, -214.6, -76.39, -27.13, -5.86\r\n-5, -2500, -500, -153.73, -47.89, -15.31, -2.73\r\n-4.5, -2278.13, -405, -106.32, -28.58, -8.14, -1.18\r\n-4, -1600, -320, -70.4, -16.05, -4.01, -0.46\r\n-3.5, -1071.88, -245, -44.12, -8.34, -1.8, -0.16\r\n-3, -675, -180, -25.72, -3.92, -0.71, -0.05\r\n-2.5, -390.63, -125, -13.59, -1.6, -0.24, -0.01\r\n-2, -200, -80, -6.22, -0.54, -0.06, 0\r\n-1.5, -84.38, -45, -2.27, -0.13, -0.01, 0\r\n-1, -25, -20, -0.55, -0.02, 0, 0\r\n-0.5, -3.13, -5, -0.05, 0, 0, 0\r\n0, 0, 0, 0, 0, 0, 0\r\n0.5, 3.13, 5, 0.05, 0, 0, 0\r\n1, 25, 20, 0.55, 0.02, 0, 0\r\n1.5, 84.38, 45, 2.27, 0.13, 0.01, 0\r\n2, 200, 80, 6.22, 0.54, 0.06, 0\r\n2.5, 390.63, 125, 13.59, 1.6, 0.24, 0.01\r\n3, 675, 180, 25.72, 3.92, 0.71, 0.05\r\n3.5, 1071.88, 245, 44.12, 8.34, 1.8, 0.16\r\n4, 1600, 320, 70.4, 16.05, 4.01, 0.46\r\n4.5, 2278.13, 405, 106.32, 28.58, 8.14, 1.18\r\n5, 2500, 500, 153.73, 47.89, 15.31, 2.73\r\n5.5, 2500, 605, 214.6, 76.39, 27.13, 5.86\r\n6, 2500, 720, 291, 117.01, 45.72, 11.76\r\n6.5, 2500, 845, 385.09, 173.2, 73.91, 22.31\r\n7, 2500, 980, 499.12, 249.03, 115.3, 40.35\r\n7.5, 2500, 1125, 635.44, 349.2, 174.42, 70.08\r\n8, 2500, 1280, 796.49, 479.09, 256.9, 117.44\r\n8.5, 2500, 1445, 984.76, 644.8, 369.61, 190.74\r\n9, 2500, 1620, 1202.85, 853.22, 520.81, 301.33\r\n9.5, 2500, 1805, 1453.43, 1112.03, 720.39, 464.39\r\n10, 2500, 2000, 1739.25, 1429.79, 980, 700\r\n10.5, 2500, 2205, 2063.12, 1815.93, 1313.29, 1034.22\r\n11, 2500, 2420, 2427.94, 2280.85, 1736.13, 1500.51\r\n11.5, 2500, 2500, 2500, 2500, 2266.8, 2141.32\r\n12, 2500, 2500, 2500, 2500, 2500, 2500\r\n12.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n13, 2500, 2500, 2500, 2500, 2500, 2500\r\n13.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n14, 2500, 2500, 2500, 2500, 2500, 2500\r\n14.5, 2500, 2500, 2500, 2500, 2500, 2500\r\n15, 2500, 2500, 2500, 2500, 2500, 2500\r\n16, 2500, 2500, 2500, 2500, 2500, 2500\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Force; Symetrical, Speed Sensitive High Boost Curve\r\n#Library : Steering: Power Assist Force\r\n#DataSet : Symetrical, Speed Sensitive High Boost Curve\r\n#Category:\r\n#FileID  : FBoost102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist force\r\n\r\nEXIT_PARSFILE Steering\\Str_FBoost\\FBoost102.par\r\n\r\n#BlueLink19 Steering: Power Assist Force`Symetrical, Speed Sensitive High Boost Curve` ` , Front boost force\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp104.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`E-Class, Sedan - Steering Comp.`CS E-Class\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1.7738e-07\r\n\r\nSTEER_COMP_COEFFICIENT 1.7738e-07\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; { CS E-Class } E-Class, Sedan - Steering Comp.\r\n#Library : Steering System: Compliance\r\n#DataSet : E-Class, Sedan - Steering Comp.\r\n#Category: CS E-Class\r\n#FileID  : StrCmp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp104.par\r\n\r\n#BlueLink13 Steering System: Compliance`E-Class, Sedan - Steering Comp.` CS E-Class` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS E-Class } E-Class, Sedan: Power R&P\r\n#Library : Steering\r\n#DataSet : E-Class, Sedan: Power R&P\r\n#Category: CS E-Class\r\n#FileID  : StrSys2106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 3050 mm\r\nFront Track =  1600 mm\r\n\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2106_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2106.par\r\n\r\n#BlueLink7 Steering`E-Class, Sedan: Power R&P` CS E-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS E-Class } E-Class, Sedan\r\n#Library : Vehicle: Assembly\r\n#DataSet : E-Class, Sedan\r\n#Category: CS E-Class\r\n#FileID  : Vehicle123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:24\r\n#VehCode Ind_Ind\r\n\r\nENTRY_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\nGeneric E-Class Sedan (Full-Size) with SLA front and 5-Link rear suspension.\r\n\r\nE-Class type vehicles include Audi A6, BMW 5-Series, Mercedes Benz E350, Lexus GS, Cadillac DTS, Chrysler 300C.\r\nEXIT_NOTEFILE Vehicles\\Assembly\\Vehicle123_note.txt\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle123.par\r\n\r\n#BlueLink2 Vehicle: Assembly`E-Class, Sedan` CS E-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc161.par`08-30-2019`17:18:33\r\n#FullDataName Procedures`SpeedTrackingCtrl_LongLane`BOOK_MPC_Procedures\r\n#CheckBox0 1\r\nOPT_INIT_CONFIG 1\r\n#CheckBox1 1\r\nOPT_INIT_ROAD 1\r\n#CheckBox2 1\r\nOPT_INIT_SPEED 1\r\n#CheckBox3 1\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 72\r\nTSTOP 50\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 0\r\nSPEED 72\r\nSV_VXS 72\r\nENTER_PARSFILE Control\\Driver\\Driver105.par`08-02-2011`16:43:30\r\n#FullDataName Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview`Constant Position\r\n#RingCtrl0 0\r\n#RingCtrl1 CONSTANT\r\nLTARG_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nAV_SW_MAX_DM 1200\r\nTLAG_DM 0\r\nA_SW_MAX_DM 720\r\n*TPREV 1.5\r\n*SCALAR 0\r\nVLOW_DRIVER 10\r\n\r\n#CheckBox0 0\r\nOPT_DRIVER_MODEL 1\r\n#CheckBox1 0\r\nCREATE_PATH_OBJ off\r\n\r\nTPREV_CONSTANT 1.5\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering by the Closed-loop Driver Model; { Constant Position } No Offset, 1.5 sec. Preview\r\n#Library : Control: Steering by the Closed-loop Driver Model\r\n#DataSet : No Offset, 1.5 sec. Preview\r\n#Category: Constant Position\r\n#FileID  : Driver105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:30\r\n#VehCode Driver path follower\r\n\r\nEXIT_PARSFILE Control\\Driver\\Driver105.par\r\n\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`No Offset, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Throttle\\Throttle102.par`08-02-2011`16:43:27\r\n#FullDataName Control: Throttle (Open Loop)`No Open-Loop Throttle`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nTHROTTLE_ENGINE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Throttle (Open Loop); No Open-Loop Throttle\r\n#Library : Control: Throttle (Open Loop)\r\n#DataSet : No Open-Loop Throttle\r\n#Category:\r\n#FileID  : Throttle102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:27\r\n#VehCode Open-loop throttle control\r\n\r\nEXIT_PARSFILE Control\\Throttle\\Throttle102.par\r\n\r\n#BlueLink29 Control: Throttle (Open Loop)`No Open-Loop Throttle` ` , Throttle\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.par`08-02-2011`16:43:22\r\n#FullDataName Road: 3D Surface (All Properties)`1200 m One Lane`Straight\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.005\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY101.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Straight`\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n100, 0, 100\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; Straight\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Straight\r\n#Category:\r\n#FileID  : RoadXY101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY101.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Straight` ` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp102.par`08-02-2011`16:43:14\r\n#FullDataName Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)`Roads\r\nNLANES 5\r\nOPTTHRESHOLD 1\r\n#MiscYellow0\r\n# 0.878 0.878 0.878, Road (One Lane), 0.2, 60, 1, -4, m, 4, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, 1, 4, m, 7.1, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, -7.1, m, -100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 60, 3.1, 7.1, m, 100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 60, -0.969, -4, m, -7.1, m, , , -100, 1200, 5, , ,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.878 0.878 0.878\r\nMATERIAL(1) Road (One Lane)\r\nSPECULAR(1) 0.2\r\nSCALE(1) 60\r\nLTILES(1) 1\r\nLIN(1) -4\r\nLINUNITS(1) m\r\nLOUT(1) 4\r\nLOUTUNITS(1) m\r\nSSTART(1) -100\r\nSSTOP(1) 1200\r\nSINT(1) 5\r\nCOLOR(2) 0.878 0.878 0.878\r\nMATERIAL(2) Road Transition (Light)\r\nSPECULAR(2) 0.1\r\nSCALE(2) 60\r\nLTILES(2) 1\r\nLIN(2) 4\r\nLINUNITS(2) m\r\nLOUT(2) 7.1\r\nLOUTUNITS(2) m\r\nSSTART(2) -100\r\nSSTOP(2) 1200\r\nSINT(2) 5\r\nCOLOR(3) 0.878 0.878 0.878\r\nMATERIAL(3) Grass (Light)\r\nSPECULAR(3) 0.1\r\nSCALE(3) 60\r\nLTILES(3) 3.1\r\nLIN(3) -7.1\r\nLINUNITS(3) m\r\nLOUT(3) -100\r\nLOUTUNITS(3) m\r\nSSTART(3) -100\r\nSSTOP(3) 1200\r\nSINT(3) 5\r\nCOLOR(4) 0.878 0.878 0.878\r\nMATERIAL(4) Grass (Light)\r\nSPECULAR(4) 0.1\r\nSCALE(4) 60\r\nLTILES(4) 3.1\r\nLIN(4) 7.1\r\nLINUNITS(4) m\r\nLOUT(4) 100\r\nLOUTUNITS(4) m\r\nSSTART(4) -100\r\nSSTOP(4) 1200\r\nSINT(4) 5\r\nCOLOR(5) 0.878 0.878 0.878\r\nMATERIAL(5) Road Transition (Light)\r\nSPECULAR(5) 0.1\r\nSCALE(5) 60\r\nLTILES(5) -0.969\r\nLIN(5) -4\r\nLINUNITS(5) m\r\nLOUT(5) -7.1\r\nLOUTUNITS(5) m\r\nSSTART(5) -100\r\nSSTOP(5) 1200\r\nSINT(5) 5\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { Roads } 1200 m Road + 200 m Light Grass (One Lane)\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : 1200 m Road + 200 m Light Grass (One Lane)\r\n#Category: Roads\r\n#FileID  : RdShp102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:14\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp102.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`1200 m Road + 200 m Light Grass (One Lane)` Roads` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink6 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road102.ani`07-20-2011`03:07:16\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road102_1.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.2 0.2 0.2\r\n\r\nadd_obj Roads\\3D_Road\\Road102_2.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_3.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_4.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road102_5.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.ani\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { Straight } 1200 m One Lane\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : 1200 m One Lane\r\n#Category: Straight\r\n#FileID  : Road102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:22\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road102.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1200 m One Lane` Straight` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } SpeedTrackingCtrl_LongLane\r\n#Library : Procedures\r\n#DataSet : SpeedTrackingCtrl_LongLane\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc161\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 17:18:33\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc161.par\r\n\r\n#BlueLink28 Procedures`SpeedTrackingCtrl_LongLane` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`E-Class, Sedan` E-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter3_SpeedTrackingControl_MPC_du <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter3_SpeedTrackingControl_MPC_du\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter3_SpeedTrackingControl_MPC_du\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter3_SpeedTrackingControl_MPC_du\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run283\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-30-2019 23:15:43\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run283.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/LEO_MPC_SpeedCtrl_du.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"LEO_MPC_SpeedCtrl_du\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.49\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    1\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      2\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2335.0, 242.0, 970.0, 740.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t3\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[920.0, 563.0]\r\n\tZoomFactor\t\t[1.5]\r\n\tOffset\t\t\t[-53.066666666666663, 144.53333333333327]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Fri Dec 16 13:40:57 2016\"\r\n  Creator\t\t  \"admin\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Fri Aug 30 23:23:13 2019\"\r\n  RTWModifiedTimeStamp\t  489108177\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:49>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"disabled\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    6\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"LEO_MPC_ACC\"\r\n    overrideMode_\t    [0.0]\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"LEO_MPC_ACC\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      []\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      7\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  8\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"50\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"auto\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"Dataset\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    8\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    Cell\t\t    \"UseSpecifiedMinMax\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  128\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"EnableAllAsError\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"none\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    15\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    Cell\t\t    \"PortableWordSizes\"\r\n\t    Cell\t\t    \"GenerateWebview\"\r\n\t    Cell\t\t    \"GenerateCodeMetricsReport\"\r\n\t    Cell\t\t    \"GenerateCodeReplacementReport\"\r\n\t    Cell\t\t    \"GenerateErtSFunction\"\r\n\t    Cell\t\t    \"CreateSILPILBlock\"\r\n\t    Cell\t\t    \"CodeExecutionProfiling\"\r\n\t    Cell\t\t    \"CodeProfilingSaveOptions\"\r\n\t    Cell\t\t    \"CodeProfilingInstrumentation\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      16\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t23\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"InsertPolySpaceComments\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"MATLABFcnDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InternalIdentifier\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"CustomSymbolStrUtil\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t15\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns on\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      off\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  18\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 260, 130, 1340, 770 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    7\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    19\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      X0\t\t      \"0\"\r\n      InheritSampleTime\t      off\r\n      LinearizeMemory\t      off\r\n      LinearizeAsDelay\t      off\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"LEO_MPC_SpeedCtrl_du\"\r\n    Location\t\t    [2335, 242, 3305, 982]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"150\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"15\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"14\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [235, 204, 335, 266]\r\n      ZOrder\t\t      33\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"LEO_MPC_SpeedCtrl_du.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"12\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [90, 250, 95, 310]\r\n      ZOrder\t\t      21\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"black\"\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[2 4]\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      Name\t\t      \"Memory1\"\r\n      SID\t\t      \"9\"\r\n      Position\t\t      [170, 219, 180, 251]\r\n      ZOrder\t\t      9\r\n      ShowName\t\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"10\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [190, 334, 360, 386]\r\n      ZOrder\t\t      13\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_MPC_SpeedCtrl_du\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"13\"\r\n      Position\t\t      [25, 280, 60, 310]\r\n      ZOrder\t\t      32\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"11\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [25, 345, 85, 375]\r\n      ZOrder\t\t      20\r\n      BlockMirror\t      on\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      17\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-41, 0]\r\n      Branch {\r\n\tZOrder\t\t\t48\r\n\tPoints\t\t\t[0, -80]\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t47\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      25\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-9, 0; 0, -30]\r\n      DstBlock\t\t      \"Memory1\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      26\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      41\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [83, 0; 0, 125]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      53\r\n      SrcBlock\t\t      \"Memory1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/MPC_Speed_Controller_CVXGEN.m",
    "content": "function [vars, status] = MPC_Speed_Controller_CVXGEN(kesi, SpeedProfile, MPCParameters)\r\n% Input:\r\n% Kesi = [Vh, Ah]'\r\n% SpeedProfile: cell(30,1),Ĳοٶȡ\r\n% MPCParameters MPCز\r\n% \r\n% Output:\r\n% status.converged: 1-converge, 0-nonconverge \r\n% vars.u_0, vars.u{i}: optimized acceleration\r\n% vars.x{i}: predicted states\r\n%\r\n% min J = Q*[Vh(k)-SpeedProfile]^2+R*[ah.des(k)]^2+S*[ah.des(k)-ah.des(k-1)]^2\r\n% s.t. kesi(k+1) = A*kesi(k)*B*u(k)\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT   \r\n%---------------------------------------------------------------%\r\n\r\n%****Step(1): longitudinal vehilce model-one step delay******************%\r\nTs = MPCParameters.Ts; % 50ms\r\ntao = 0.2; %ϵͳʱ0.2 for simulation and 0.5 for real-vehicle test\r\nA =  [1      Ts;\r\n      0      1-Ts/tao];\r\nB =  [0;     Ts/tao]; \r\n\r\n%------Or Թʱʱ˶ԱʾΪһ˫ϵͳ\r\n% A =  [1     Ts;\r\n%       0     1];\r\n% B =  [0;    Ts]; \r\n    \r\n%****Step(2): MPC formulation;CVXGEN solver *****************************%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    settings.resid_tol  = 1e-1;\r\n    settings.eps        = 1e1;\r\n    \r\n    params.x_0      = kesi;\r\n    params.ahm      = kesi(2); % \r\n    params.vref     = SpeedProfile; % \r\n    \r\n    params.An      = A;\r\n    params.Bn      = B;\r\n    params.C       = [1, 0];\r\n    \r\n    params.Q        = MPCParameters.Q; %100 \r\n    params.R        = MPCParameters.R; %0.1   \r\n    params.S        = MPCParameters.S; %0.1  \r\n\r\n    params.dumax   = MPCParameters.dumax;    \r\n    params.umax    = MPCParameters.umax;\r\n    params.umin    = MPCParameters.umin;    \r\n    \r\n    [vars, status] = csolve_CC(params, settings);\r\n    \r\nend\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/Main_MPC_SpeedCtrl_du.m",
    "content": "function [sys,x0,str,ts] =Main_MPC_SpeedCtrl_du(t,x,u,flag)\r\n%***************************************************************% \r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 2;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 6;  %S\r\nsizes.NumInputs      = 2; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\nglobal MPCParameters; \r\n    MPCParameters.Np      = 30;% predictive horizon\r\n    MPCParameters.Nc      = 30;% control horizon\r\n    MPCParameters.Nx      = 2; %number of state variables\r\n    MPCParameters.Nu      = 1; %number of control inputs\r\n    MPCParameters.Ny      = 1; %number of output variables  \r\n    MPCParameters.Ts      = 0.05; %Set the sample time\r\n    MPCParameters.Q       = 100; % cost weight factor \r\n    MPCParameters.R       = 1; % cost weight factor \r\n    MPCParameters.S       = 1; % cost weight factor \r\n    MPCParameters.qp_solver = 2; %0: default, quadprog; 1:qpOASES; 2:CVXGEN\r\n    MPCParameters.refspeedT = 1; %0: default, step speed profile; \r\n                                 %1:sine-wave speed profile\r\n    MPCParameters.umin      = -5.0;  % the min of deceleration\r\n    MPCParameters.umax      = 3.5;  % the max of acceleration\r\n    MPCParameters.dumin     = -5.0; % minimum limits of jerk\r\n    MPCParameters.dumax     = 5.0; % maximum limits of jerk\r\nglobal WarmStart;\r\n    WarmStart = zeros(MPCParameters.Np,1);\r\n%  End of mdlInitializeSizes\r\n\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n\r\nglobal InitialGapflag;\r\nglobal MPCParameters;\r\nglobal WarmStart;\r\nVx    = 0;\r\na_x   = 0;\r\na_des = 0;\r\n\r\nt_Start = tic; % ʼʱ \r\nif InitialGapflag < 2 %  get rid of the first two inputs\r\n    InitialGapflag = InitialGapflag + 1;%\r\nelse\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %***********Step (1). Update vehicle states *************************% \r\n    Vx    = u(1)/3.6;  %ٶȣλkm/h-->m/s\r\n    a_x   = u(2)*9.8;  %ٶȣλg's-->m/s2 \r\n    kesi = [Vx;  a_x]; %³״̬\r\n    \r\n    %********Step(2): Generate reference speed profile *******************%\r\n    switch MPCParameters.refspeedT,\r\n        case 0 % default, step speed profile\r\n            %----趨ʽٶ----------------------%\r\n            SpeedProfile = func_ConstantSpeed(InitialGapflag, MPCParameters);\r\n        case 1 % sine-wave speed profile\r\n            %----sine waveʽ ٶ--------------%\r\n            SpeedProfile = func_SineSpeed(InitialGapflag,MPCParameters);\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected speed-profile:',num2str(MPCParameters.refspeedT)]); % Error handling\r\n    end %  end of switch \r\n    \r\n    %****Step(3): update longitudinal vehilce model with inertial delay***%\r\n    Ts = MPCParameters.Ts; % 50ms\r\n    StateSpaceModel.A =  [1      Ts;\r\n                          0      1];\r\n    StateSpaceModel.B =  [0;     1]; \r\n    StateSpaceModel.C =  [1,    0];\r\n    %****Step(4):  MPC formulation;********************%\r\n    %Update Theta and PHI for future states prediction\r\n    [PHI, THETA] = func_Update_PHI_THETA(StateSpaceModel, MPCParameters);\r\n\r\n    %Update H and f for cost function J\r\n    [H, f, g] = func_Update_H_f(kesi, SpeedProfile, PHI, THETA, MPCParameters); \r\n    \r\n    %****Step(5):  Call qp-solver********************%\r\n    switch MPCParameters.qp_solver,\r\n        case 0 % default qp-solver: quadprog\r\n            [A, b, Aeq, beq, lb, ub] = func_Constraints_du_quadprog(MPCParameters, a_x);\r\n            options = optimset('Display','off', ...\r\n                            'TolFun', 1e-8, ...\r\n                            'MaxIter', 2000, ...\r\n                            'Algorithm', 'active-set', ...\r\n                            'FinDiffType', 'forward', ...\r\n                            'RelLineSrchBnd', [], ...\r\n                            'RelLineSrchBndDuration', 1, ...\r\n                            'TolConSQP', 1e-8); \r\n            warning off all  % close the warnings during computation     \r\n\r\n            U0 = WarmStart;           \r\n            [U, FVAL, EXITFLAG] = quadprog(H, g, A, b, Aeq, beq, lb, ub, U0, options); %\r\n            WarmStart = shiftHorizon(U);     % Prepare restart, nominal close loop \r\n            if (1 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver not converged!\\n');                  \r\n            end\r\n            a_des =  U(1);\r\n \r\n        case 1 % qpOASES\r\n            [A, lb, ub, lbA, ubA] = func_Constraints_du_qpOASES(MPCParameters, a_x);\r\n            options = qpOASES_options('default', ...\r\n                                'printLevel', 0); \r\n\r\n            %=======================USE QP==================%\r\n            [U, FVAL, EXITFLAG, iter, lambda] = qpOASES(H, g, A, lb, ub, lbA, ubA, options); %\r\n\r\n            %=======================USE SQP==================%\r\n    %         try\r\n    %             H=sparse(H);\r\n    %             A=sparse(A);\r\n    %         catch\r\n    %             fprintf('qpOASES Error reported\\n'); \r\n    %         end\r\n    %         if (qpOASES_hotstart_flag)\r\n    %             [qpOASES_QP, U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('i', H, g, A, lb, ub, lbA, ubA, options);\r\n    %             qpOASES_hotstart_flag = 1;\r\n    %         else    \r\n    %             [U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('m', qpOASES_QP, H, g, A, lb, ub, lbA, ubA, options); %\r\n    %         end\r\n            if (0 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver: qpOASES not converged!\\n');                  \r\n            end\r\n            a_des =  U(1);\r\n\r\n        case 2 % CVXGEN\r\n            %--Licenseƣ鲻ṩCVXGENsolver߿\r\n            [vars, status] = MPC_Speed_Controller_CVXGEN(kesi, SpeedProfile, MPCParameters);\r\n            if (1 == status.converged) %if optimization succeeded.\r\n                a_des = vars.u_0; \r\n            else\r\n                a_des = 0;\r\n                fprintf('MPC solver not converged!\\n');                  \r\n            end\r\n\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected qp-solver, Sol_method=',num2str(flag)]); % Error handling\r\n    end %  end of switch \r\n\r\nend % end of if Initialflag < 1 % \r\n\r\n    %****Step(6):  ļٶThrottleBrake;********************%\r\n    [Throttle, Brake] = func_AccelerationTrackingController(a_des);\r\n\r\nt_Elapsed = toc( t_Start ); %computation time \r\n\r\nsys = [Throttle; Brake;t_Elapsed; Vx; a_x; a_des]; \r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%============================================================== \r\nfunction [Vref] = func_SineSpeed(Index, MPCParameters)\r\n%ʽٶ\r\n    %****Sine wave parameters\r\n    T = 50; %ٶߵڣunit: s\r\n    freq = 1/T; %ٶߵƵʣunit: Hz\r\n    Amplit = 10;%ٶߵķֵ\r\n    offst = 20; %ٶߵƫ\r\n    \r\n    Ts = MPCParameters.Ts; %ʱ=0.05unit: s\r\n    Np = MPCParameters.Np; % Ԥʱ30\r\n    Vref = cell(Np,1);\r\n    t0 = Index*Ts;\r\n\r\n    for i = 1:1:Np\r\n        t = t0 + i*Ts;\r\n        Vref{i,1}   =   Amplit*sin(2*pi*freq*t) + offst;   \r\n    end\r\n   \r\n% end %EoF\r\n\r\nfunction [Vref] = func_ConstantSpeed(InitialGapflag, MPCParameters)\r\n% ɽʽٶ    \r\n    Ts = MPCParameters.Ts; %ʱ=0.05unit: s\r\n    Np = MPCParameters.Np; % Ԥʱ30\r\n    Vref = cell(Np,1);\r\n    \r\n    % Զݵʽ\r\n    if InitialGapflag < 400\r\n        Vset = 10;\r\n    else\r\n        if InitialGapflag < 800\r\n            Vset = 10;\r\n        else\r\n            if InitialGapflag < 1500\r\n                Vset = 20;\r\n            else\r\n                Vset = 5;\r\n            end\r\n        end\r\n    end\r\n\r\n    for i = 1:1:Np\r\n        Vref{i,1}   =   Vset;   \r\n    end\r\n\r\n% end %EoF\r\n\r\nfunction [Throttle, Brake] = func_AccelerationTrackingController(ahopt)\r\n% λٶתΪſƶѹ\r\n    K_brake         = 0.3;\r\n    K_throttle      = 0.1; %0.05;\r\n    Brake_Sat       = 15;\r\n    Throttle_Sat    = 1;\r\n\r\n    if ahopt < 0 % Brake control\r\n        Brake = K_brake * ahopt;\r\n        if Brake > Brake_Sat\r\n            Brake = Brake_Sat;\r\n        end\r\n        Throttle = 0;\r\n    else % throttle control \r\n        Brake       = 0;\r\n        Throttle    = K_throttle  *ahopt;\r\n        if Throttle > Throttle_Sat\r\n            Throttle = Throttle_Sat;\r\n        end\r\n        if Throttle < 0\r\n            Throttle = 0;\r\n        end\r\n\r\n    end\r\n% end %EoF\r\n\r\nfunction u0 = shiftHorizon(u) %shift control horizon\r\n    u0 = [u(:,2:size(u,2)), u(:,size(u,2))];  %  size(u,2))\r\n    \r\nfunction [PHI, THETA] = func_Update_PHI_THETA(StateSpaceModel, MPCParameters)\r\n%***************************************************************%\r\n% Ԥʽ Y(t)=PHI*kesi(t)+THETA*DU(t) \r\n% Y(t) = [Eta(t+1|t) Eta(t+2|t) Eta(t+3|t) ... Eta(t+Np|t)]'\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;\r\n    Nx = MPCParameters.Nx;\r\n    Ny = MPCParameters.Ny;\r\n    Nu = MPCParameters.Nu;\r\n    A = StateSpaceModel.A;\r\n    B = StateSpaceModel.B;\r\n    C = StateSpaceModel.C;\r\n\r\n    PHI_cell=cell(Np,1);                            %PHI=[CA CA^2  CA^3 ... CA^Np]' \r\n    THETA_cell=cell(Np,Nc);                         %THETA\r\n    for j=1:1:Np\r\n        PHI_cell{j,1}=C*A^j;                       %  demision:Ny* Nx\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;        %  demision:Ny*Nu\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI=cell2mat(PHI_cell);    % size(PHI)=[(Ny*Np) * Nx]\r\n    THETA=cell2mat(THETA_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n% end %EoF\r\n\r\n\r\nfunction[H, f, g] = func_Update_H_f(kesi, SpeedProfile, PHI, THETA, MPCParameters)\r\n%***************************************************************%\r\n% trajectory planning\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;   \r\n    Q  = MPCParameters.Q;\r\n    R  = MPCParameters.R;\r\n        \r\n    Qq = kron(eye(Np),Q);  %           Q = [Np*Nx] *  [Np*Nx] \r\n    Rr = kron(eye(Nc),R);  %           R = [Nc*Nu] *  [Nc*Nu]\r\n\r\n    Vref = cell2mat(SpeedProfile); \r\n    error = PHI * kesi;    %[(Nx*Np) * 1]\r\n\r\n    H = THETA'*Qq*THETA + Rr;  \r\n    f = (error' - Vref')*Qq*THETA;\r\n    g = f';\r\n% end %EoF\r\n\r\nfunction  [A, b, Aeq, beq, lb, ub] = func_Constraints_du_quadprog(MPCParameters, um)\r\n%************************************************************************%\r\n% generate the constraints of the vehicle\r\n%  \r\n%************************************************************************%\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    dumax = MPCParameters.dumax;\r\n    umin = MPCParameters.umin;  \r\n    umax = MPCParameters.umax;  \r\n    Umin = kron(ones(Nc,1),umin);\r\n    Umax = kron(ones(Nc,1),umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) A*x<=b----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_cell=cell(2,1);\r\n    A_cell{1,1} = A_t; %\r\n    A_cell{2,1} = -A_t;\r\n    A=cell2mat(A_cell);  %\r\n    \r\n    \r\n    b_cell=cell(2, 1);\r\n    b_cell{1,1} = Umax - Ut; %\r\n    b_cell{2,1} = -Umin + Ut;\r\n    b=cell2mat(b_cell);  % \r\n\r\n%----(2) Aeq*x=beq----------%\r\n    Aeq = [];\r\n    beq = [];\r\n\r\n%----(3) lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),-dumax);\r\n    ub=kron(ones(Nc,1),dumax);\r\n% end %EoF\r\n\r\nfunction [A_t, lb, ub, lbA, ubA] = func_Constraints_du_qpOASES(MPCParameters, um)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    dumax = MPCParameters.dumax;\r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n    Umin = kron(ones(Nc,1), umin);\r\n    Umax = kron(ones(Nc,1), umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) lbA <= A_t*x<=ubA----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n\r\n    ubA = Umax - Ut; %\r\n    lbA = Umin - Ut;\r\n%---- lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),-dumax);\r\n    ub=kron(ones(Nc,1),dumax);\r\n% end %EoF\r\n\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/ReadMe",
    "content": "MPC for speed tracking control, use change-of-acceleration (Delta_d_des) as control input\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/SimRes_Plot_SineWaveSpeed.m",
    "content": " index = 1:1:2001;\r\n t = 0.05*index;\r\n \r\n A = 10;\r\n offst = 20; %ٶߵƫ\r\n T =50;\r\n f = 1/T;\r\n Ts = 0.05;\r\n y = A*sin(2*pi*f*t)+offst;\r\n plot(index,y)\r\n hold on\r\n \r\nplot(u.signals.values(:,4),'r.');"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/SimRes_Plot_StepSpeed.m",
    "content": " time = 1:1:2001;\r\n t = 0.05*time;\r\n num=length(t);\r\n Spet_speed = zeros(1,num);\r\n\r\n for index=1:num\r\n    if index < 800\r\n        Spet_speed(index) = 10;\r\n    else\r\n        if index < 1500\r\n            Spet_speed(index) = 20;\r\n        else\r\n            Spet_speed(index) = 5;\r\n        end\r\n    end   \r\n end\r\n \r\n plot(time,Spet_speed)\r\n hold on\r\n grid on\r\n \r\n plot(u.signals.values(:,4),'r.');\r\n"
  },
  {
    "path": "Chapter-3/chap3_MPC_SpeedCtrl_du/qpOASES_options.m",
    "content": "%qpOASES -- An Implementation of the Online Active Set Strategy.\n%Copyright (C) 2007-2015 by Hans Joachim Ferreau, Andreas Potschka,\n%Christian Kirches et al. All rights reserved.\n%\n%qpOASES is distributed under the terms of the\n%GNU Lesser General Public License 2.1 in the hope that it will be\n%useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n%of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n%See the GNU Lesser General Public License for more details.\n%\n%---------------------------------------------------------------------------------\n%\n%Returns a struct containing values for all options to be used within qpOASES.\n%\n%Call\n%    options = qpOASES_options( 'default' );\n%    options = qpOASES_options( 'reliable' );\n%    options = qpOASES_options( 'MPC' );\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively.\n%\n%Call\n%    options = qpOASES_options( 'option1',value1,'option2',value2,... )\n%to obtain a set of default options but with 'option1' set to value1 etc.\n%\n%Call\n%    options = qpOASES_options( oldOptions,'option1',value1,... )\n%to obtain a copy of the options struct oldOptions but with 'option1' set\n%to value1 etc.\n%\n%Call\n%    options = qpOASES_options( 'default', 'option1',value1,... )\n%    options = qpOASES_options( 'reliable','option1',value1,... )\n%    options = qpOASES_options( 'MPC',     'option1',value1,... )\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively, but with 'option1' set to \n%value1 etc.\n%\n%\n%qpOASES features the following options:\n%  maxIter                    -  Maximum number of iterations (if set\n%                                to -1, a value is chosen heuristically)\n%  maxCpuTime                 -  Maximum CPU time in seconds (if set\n%                                to -1, only iteration limit is used)\n%  printLevel                 -  0: no printed output,\n%                                1: only error messages are printed,\n%                                2: iterations and error messages are printed,\n%                                3: all available messages are printed.\n%\n%  enableRamping              -  Enables (1) or disables (0) ramping.\n%  enableFarBounds            -  Enables (1) or disables (0) the use of \n%                                far bounds.\n%  enableFlippingBounds       -  Enables (1) or disables (0) the use of \n%                                flipping bounds.\n%  enableRegularisation       -  Enables (1) or disables (0) automatic \n%                                Hessian regularisation.\n%  enableFullLITests          -  Enables (1) or disables (0) condition-hardened \n%                                (but more expensive) LI test.\n%  enableNZCTests             -  Enables (1) or disables (0) nonzero curvature \n%                                tests.\n%  enableDriftCorrection      -  Specifies the frequency of drift corrections:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableCholeskyRefactorisation - Specifies the frequency of a full re-\n%                                factorisation of projected Hessian matrix:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableEqualities           -  Specifies whether equalities should be treated \n%                                as always active (1) or not (0)\n%\n%  terminationTolerance       -  Relative termination tolerance to stop homotopy.\n%  boundTolerance             -  If upper and lower bounds differ less than this\n%                                tolerance, they are regarded equal, i.e. as \n%                                equality constraint.\n%  boundRelaxation            -  Initial relaxation of bounds to start homotopy \n%                                and initial value for far bounds.\n%  epsNum                     -  Numerator tolerance for ratio tests.\n%  epsDen                     -  Denominator tolerance for ratio tests.\n%  maxPrimalJump              -  Maximum allowed jump in primal variables in \n%                                nonzero curvature tests.\n%  maxDualJump                -  Maximum allowed jump in dual variables in \n%                                linear independence tests.\n%\n%  initialRamping             -  Start value for ramping strategy.\n%  finalRamping               -  Final value for ramping strategy.\n%  initialFarBounds           -  Initial size for far bounds.\n%  growFarBounds              -  Factor to grow far bounds.\n%  initialStatusBounds        -  Initial status of bounds at first iteration:\n%                                 0: all bounds inactive,\n%                                -1: all bounds active at their lower bound,\n%                                +1: all bounds active at their upper bound.\n%  epsFlipping                -  Tolerance of squared Cholesky diagonal factor \n%                                which triggers flipping bound.\n%  numRegularisationSteps     -  Maximum number of successive regularisation steps.\n%  epsRegularisation          -  Scaling factor of identity matrix used for \n%                                Hessian regularisation.\n%  numRefinementSteps         -  Maximum number of iterative refinement steps.\n%  epsIterRef                 -  Early termination tolerance for iterative \n%                                refinement.\n%  epsLITests                 -  Tolerance for linear independence tests.\n%  epsNZCTests                -  Tolerance for nonzero curvature tests.\n%\n%\n%See also QPOASES, QPOASES_SEQUENCE, QPOASES_AUXINPUT\n%\n%\n%For additional information see the qpOASES User's Manual or\n%visit http://www.qpOASES.org/.\n%\n%Please send remarks and questions to support@qpOASES.org!\nfunction [ options ] = qpOASES_options( varargin )\n\n\tfirstIsStructOrScheme = 0;\n\n\tif ( nargin == 0 ) \n\t\toptions = qpOASES_default_options();\n\telse\n\t\tif ( isstruct( varargin{1} ) )\n\t\t\tif ( mod( nargin,2 ) ~= 1 )\n\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\tend\n\t\t\toptions = varargin{1};\n\t\t\tfirstIsStructOrScheme = 1;\n\t\telse\n\t\t\tif ( ischar( varargin{1} ) )\n\t\t\t\tif ( mod( nargin,2 ) == 0 )\n\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\telse\n\t\t\t\t\tif ( ( nargin > 1 ) && ( ischar( varargin{nargin} ) ) )\n\t\t\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\t\t\tend\n\n\t\t\t\t\tswitch ( varargin{1} )\n\t\t\t\t\t\tcase 'default'\n\t\t\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\t\t\tcase 'reliable'\n\t\t\t\t\t\t\toptions = qpOASES_reliable_options();\n\t\t\t\t\t\tcase {'MPC','mpc','fast'}\n\t\t\t\t\t\t\toptions = qpOASES_MPC_options();\n\t\t\t\t\t\totherwise\n\t\t\t\t\t\t\terror( ['ERROR (qpOASES_options): Only the following option schemes are defined: ''default'', ''reliable'', ''MPC''!'] );\n\t\t\t\t\t\t\t\n\t\t\t\t\tend\n\t\t\t\t\tfirstIsStructOrScheme = 1;\n\t\t\t\tend\n\t\t\telse\n\t\t\t\terror('ERROR (qpOASES_options): First argument needs to be a string or an options struct!');\n\t\t\tend\n\t\tend\n\tend\n\n\t% set options to user-defined values  \n\tfor i=(1+firstIsStructOrScheme):2:nargin\n\n\t\targName  = varargin{i};\n\t\targValue = varargin{i+1};\n\n\t\tif ( ( isempty( argName ) ) || ( ~ischar( argName ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a non-empty string!',i );\n        end\n\t\t\t\n\t\tif ( ( ischar(argValue) ) || ( ~isscalar( argValue ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a scalar constant!',i+1 );\n        end\n\n\t\tif ( ~isfield( options,argName ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d is an invalid option!',i );\n\t\tend\n\n\t\teval( ['options.',argName,' = ',num2str(argValue),';'] );\n\n\tend\n\nend\n\n\nfunction [ options ] = qpOASES_default_options( )\n\n\t% setup options struct with default values\n\toptions = struct(\t'maxIter',                       -1, ...\n\t\t\t\t\t\t'maxCpuTime',                    -1, ...\n\t\t\t\t\t\t'printLevel',                     1, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'enableRamping',                  1, ...\n\t\t\t\t\t\t'enableFarBounds',                1, ...\n\t\t\t\t\t\t'enableFlippingBounds',           1, ...\n\t\t\t\t\t\t'enableRegularisation',           0, ...\n\t\t\t\t\t\t'enableFullLITests',              0, ...\n\t\t\t\t\t\t'enableNZCTests',                 1, ...\n\t\t\t\t\t\t'enableDriftCorrection',          1, ...\n\t\t\t\t\t\t'enableCholeskyRefactorisation',  0, ...\n\t\t\t\t\t\t'enableEqualities',               0, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'terminationTolerance',           5.0e6*eps, ...\n\t\t\t\t\t\t'boundTolerance',                 1.0e6*eps, ...\n\t\t\t\t\t\t'boundRelaxation',                1.0e4, ...\n\t\t\t\t\t\t'epsNum',                        -1.0e3*eps, ...\n\t\t\t\t\t\t'epsDen',                         1.0e3*eps, ...\n\t\t\t\t\t\t'maxPrimalJump',                  1.0e8, ...\n\t\t\t\t\t\t'maxDualJump',                    1.0e8, ...\n\t\t\t\t\t\t...\n    \t\t\t\t\t'initialRamping',                 0.5, ...\n\t\t\t\t\t\t'finalRamping',                   1.0, ...\n\t\t\t\t\t\t'initialFarBounds',               1.0e6, ...\n\t\t\t\t\t\t'growFarBounds',                  1.0e3, ...\n\t\t\t\t\t\t'initialStatusBounds',            -1, ...\n\t\t\t\t\t\t'epsFlipping',                    1.0e3*eps, ...\n\t\t\t\t\t\t'numRegularisationSteps',         0, ...\n\t\t\t\t\t\t'epsRegularisation',              1.0e3*eps, ...\n\t\t\t\t\t\t'numRefinementSteps',             1, ...\n\t\t\t\t\t\t'epsIterRef',                     1.0e2*eps, ...\n\t\t\t\t\t\t'epsLITests',                     1.0e5*eps, ...\n\t\t\t\t\t\t'epsNZCTests',                    3.1e3*eps );\n\nend\n\n\n\nfunction [ options ] = qpOASES_reliable_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableFullLITests             =  1;\n\toptions.enableCholeskyRefactorisation =  1;\n\n\toptions.numRefinementSteps            =  2;\n\nend\n\n\nfunction [ options ] = qpOASES_MPC_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableRamping                 =  0;\n\toptions.enableFarBounds               =  1;\n\toptions.enableFlippingBounds          =  0;\n\toptions.enableRegularisation          =  1;\n\toptions.enableNZCTests                =  0;\n\toptions.enableDriftCorrection         =  0;\n\toptions.enableEqualities              =  1;\n\n\toptions.terminationTolerance          =  1.0e9*eps;\n\t\n\toptions.initialStatusBounds           =  0;\n\toptions.numRegularisationSteps        =  1;\n\toptions.numRefinementSteps            =  0;\n\nend\n"
  },
  {
    "path": "Chapter-3/chapter3_4_2.m",
    "content": "function [sys,x0,str,ts] =Main_MPC_SpeedCtrl(t,x,u,flag)\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My github: https://github.com/leoking99-BIT \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 2;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 6;  %S\r\nsizes.NumInputs      = 2; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\nglobal MPCParameters; \r\n    MPCParameters.Np      = 30;% predictive horizon\r\n    MPCParameters.Nc      = 30;% control horizon\r\n    MPCParameters.Nx      = 2; %number of state variables\r\n    MPCParameters.Nu      = 1; %number of control inputs\r\n    MPCParameters.Ny      = 1; %number of output variables  \r\n    MPCParameters.Ts      = 0.05; %Set the sample time\r\n    MPCParameters.Q       = 100; % cost weight factor \r\n    MPCParameters.R       = 0.1; % cost weight factor \r\n    MPCParameters.S       = 0.1; % cost weight factor \r\n    MPCParameters.qp_solver = 0; %0: default, quadprog; 1:qpOASES\r\n    MPCParameters.refspeedT = 1; %0: default, step speed profile; \r\n                                 %1:sine-wave speed profile\r\n    MPCParameters.umin      = -5.0;  % the min of deceleration\r\n    MPCParameters.umax      = 3.5;  % the max of acceleration\r\n    MPCParameters.dumin     = -5.0; % minimum limits of jerk\r\n    MPCParameters.dumax     = 5.0; % maximum limits of jerk\r\nglobal WarmStart;\r\n    WarmStart = zeros(MPCParameters.Np,1);\r\n%  End of mdlInitializeSizes\r\n\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n\r\nglobal InitialGapflag;\r\nglobal MPCParameters;\r\nglobal WarmStart;\r\nVx    = 0;\r\na_x   = 0;\r\na_des = 0;\r\n\r\nt_Start = tic; % ʼʱ \r\nif InitialGapflag < 2 %  get rid of the first two inputs\r\n    InitialGapflag = InitialGapflag + 1;% delay\r\nelse\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %***********Step (1). Update vehicle states *************************% \r\n    Vx    = u(1)/3.6;  %ٶȣλkm/h-->m/s\r\n    a_x   = u(2)*9.8;  %ٶȣλg's-->m/s2 \r\n    kesi = [Vx;  a_x]; %³״̬\r\n    \r\n    %********Step(2): Generate reference speed profile *******************%\r\n    switch MPCParameters.refspeedT,\r\n        case 0 % default, step speed profile\r\n            %----趨ʽٶ----------------------%\r\n            SpeedProfile = func_ConstantSpeed(InitialGapflag, MPCParameters);\r\n        case 1 % sine-wave speed profile\r\n            %----sine waveʽ ٶ--------------%\r\n            SpeedProfile = func_SineSpeed(InitialGapflag,MPCParameters);\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected speed-profile:',num2str(MPCParameters.refspeedT)]); % Error handling\r\n    end %  end of switch \r\n    \r\n    %****Step(3): update longitudinal vehilce model with inertial delay**8%\r\n    Ts = MPCParameters.Ts; % 50ms\r\n    tao = 0.2; %ϵͳʱ0.2 for simulation\r\n    StateSpaceModel.A =  [1      Ts;\r\n                          0      1-Ts/tao];\r\n    StateSpaceModel.B =  [0;     Ts/tao]; \r\n    StateSpaceModel.C =  [1,    0];\r\n    %****Step(4):  MPC formulation;********************%\r\n    %Update Theta and PHI for future states prediction\r\n    [PHI, THETA] = func_Update_PHI_THETA(StateSpaceModel, MPCParameters);\r\n\r\n    %Update H and f for cost function J\r\n    [H, f, g] = func_Update_H_f(kesi, SpeedProfile, PHI, THETA, MPCParameters); \r\n    \r\n    %****Step(5):  Call qp-solver********************%\r\n    switch MPCParameters.qp_solver,\r\n        case 0 % default qp-solver: quadprog\r\n            [A, b, Aeq, beq, lb, ub] = func_Constraints_u_quadprog(MPCParameters);\r\n            options = optimset('Display','off', ...\r\n                            'TolFun', 1e-8, ...\r\n                            'MaxIter', 2000, ...\r\n                            'Algorithm', 'active-set', ...\r\n                            'FinDiffType', 'forward', ...\r\n                            'RelLineSrchBnd', [], ...\r\n                            'RelLineSrchBndDuration', 1, ...\r\n                            'TolConSQP', 1e-8); \r\n            warning off all  % close the warnings during computation     \r\n\r\n            U0 = WarmStart;           \r\n            [U, FVAL, EXITFLAG] = quadprog(H, g, A, b, Aeq, beq, lb, ub, U0, options); %\r\n            WarmStart = shiftHorizon(U);     % Prepare restart, nominal close loop \r\n            if (1 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver not converged!\\n');                  \r\n            end\r\n            a_des =  U(1);\r\n \r\n        case 1 % qpOASES\r\n            [A, lb, ub, lbA, ubA] = func_Constraints_u_qpOASES(MPCParameters);\r\n            options = qpOASES_options('default', ...\r\n                                'printLevel', 0); \r\n\r\n            %=======================USE QP==================%\r\n            [U, FVAL, EXITFLAG, iter, lambda] = qpOASES(H, g, A, lb, ub, lbA, ubA, options); %\r\n\r\n            %=======================USE SQP==================%\r\n    %         try\r\n    %             H=sparse(H);\r\n    %             A=sparse(A);\r\n    %         catch\r\n    %             fprintf('qpOASES Error reported\\n'); \r\n    %         end\r\n    %         if (qpOASES_hotstart_flag)\r\n    %             [qpOASES_QP, U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('i', H, g, A, lb, ub, lbA, ubA, options);\r\n    %             qpOASES_hotstart_flag = 1;\r\n    %         else    \r\n    %             [U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('m', qpOASES_QP, H, g, A, lb, ub, lbA, ubA, options); %\r\n    %         end\r\n            if (0 ~= EXITFLAG) %if optimization NOT succeeded.\r\n                U(1) = 0.0;\r\n                fprintf('MPC solver: qpOASES not converged!\\n');                  \r\n            end\r\n            a_des =  U(1);\r\n\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected qp-solver, Sol_method=',num2str(flag)]); % Error handling\r\n    end %  end of switch \r\n\r\nend % end of if Initialflag < 1 % \r\n\r\n    %****Step(6):  ļٶThrottleBrake;********************%\r\n    [Throttle, Brake] = func_AccelerationTrackingController(a_des);\r\n\r\nt_Elapsed = toc( t_Start ); %computation time \r\n\r\nsys = [Throttle; Brake;t_Elapsed; Vx; a_x; a_des]; \r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%============================================================== \r\nfunction [Vref] = func_SineSpeed(Index, MPCParameters)\r\n%ʽٶ\r\n    %****Sine wave parameters\r\n    T = 50; %ٶߵڣunit: s\r\n    freq = 1/T; %ٶߵƵʣunit: Hz\r\n    Amplit = 10;%ٶߵķֵ\r\n    offst = 20; %ٶߵƫ\r\n    \r\n    Ts = MPCParameters.Ts; %ʱ=0.05unit: s\r\n    Np = MPCParameters.Np; % Ԥʱ30\r\n    Vref = cell(Np,1);\r\n    t0 = Index*Ts;\r\n\r\n    for i = 1:1:Np\r\n        t = t0 + i*Ts;\r\n        Vref{i,1}   =   Amplit*sin(2*pi*freq*t) + offst;   \r\n    end\r\n   \r\n% end %EoF\r\n\r\nfunction [Vref] = func_ConstantSpeed(InitialGapflag, MPCParameters)\r\n% ɽʽٶ    \r\n    Ts = MPCParameters.Ts; %ʱ=0.05unit: s\r\n    Np = MPCParameters.Np; % Ԥʱ30\r\n    Vref = cell(Np,1);\r\n    \r\n    % Զݵʽ\r\n    if InitialGapflag < 400\r\n        Vset = 10;\r\n    else\r\n        if InitialGapflag < 800\r\n            Vset = 10;\r\n        else\r\n            if InitialGapflag < 1500\r\n                Vset = 20;\r\n            else\r\n                Vset = 5;\r\n            end\r\n        end\r\n    end\r\n\r\n    for i = 1:1:Np\r\n        Vref{i,1}   =   Vset;   \r\n    end\r\n\r\n% end %EoF\r\n\r\nfunction [Throttle, Brake] = func_AccelerationTrackingController(ahopt)\r\n% λٶתΪſƶѹ\r\n    K_brake         = 0.3;\r\n    K_throttle      = 0.1; %0.05;\r\n    Brake_Sat       = 15;\r\n    Throttle_Sat    = 1;\r\n\r\n    if ahopt < 0 % Brake control\r\n        Brake = K_brake * ahopt;\r\n        if Brake > Brake_Sat\r\n            Brake = Brake_Sat;\r\n        end\r\n        Throttle = 0;\r\n    else % throttle control \r\n        Brake       = 0;\r\n        Throttle    = K_throttle  *ahopt;\r\n        if Throttle > Throttle_Sat\r\n            Throttle = Throttle_Sat;\r\n        end\r\n        if Throttle < 0\r\n            Throttle = 0;\r\n        end\r\n\r\n    end\r\n% end %EoF\r\n\r\nfunction u0 = shiftHorizon(u) %shift control horizon\r\n    u0 = [u(:,2:size(u,2)), u(:,size(u,2))];  %  size(u,2))\r\n    \r\nfunction [PHI, THETA] = func_Update_PHI_THETA(StateSpaceModel, MPCParameters)\r\n%***************************************************************%\r\n% Ԥʽ Y(t)=PHI*kesi(t)+THETA*DU(t) \r\n% Y(t) = [Eta(t+1|t) Eta(t+2|t) Eta(t+3|t) ... Eta(t+Np|t)]'\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;\r\n    Nx = MPCParameters.Nx;\r\n    Ny = MPCParameters.Ny;\r\n    Nu = MPCParameters.Nu;\r\n    A = StateSpaceModel.A;\r\n    B = StateSpaceModel.B;\r\n    C = StateSpaceModel.C;\r\n\r\n    PHI_cell=cell(Np,1);                            %PHI=[CA CA^2  CA^3 ... CA^Np]' \r\n    THETA_cell=cell(Np,Nc);                         %THETA\r\n    for j=1:1:Np\r\n        PHI_cell{j,1}=C*A^j;                       %  demision:Ny* Nx\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;        %  demision:Ny*Nu\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI=cell2mat(PHI_cell);    % size(PHI)=[(Ny*Np) * Nx]\r\n    THETA=cell2mat(THETA_cell);% size(THETA)=[Ny*Np Nu*Nc]\r\n% end %EoF\r\n\r\n\r\nfunction[H, f, g] = func_Update_H_f(kesi, SpeedProfile, PHI, THETA, MPCParameters)\r\n%***************************************************************%\r\n% trajectory planning\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = MPCParameters.Nc;   \r\n    Q  = MPCParameters.Q;\r\n    R  = MPCParameters.R;\r\n        \r\n    Qq = kron(eye(Np),Q);  %           Q = [Np*Nx] *  [Np*Nx] \r\n    Rr = kron(eye(Nc),R);  %           R = [Nc*Nu] *  [Nc*Nu]\r\n\r\n    Vref = cell2mat(SpeedProfile); \r\n    error = PHI * kesi;    %[(Nx*Np) * 1]\r\n\r\n    H = THETA'*Qq*THETA + Rr;  \r\n    f = (error' - Vref')*Qq*THETA;\r\n    g = f';\r\n% end %EoF\r\n\r\nfunction  [A, b, Aeq, beq, lb, ub] = func_Constraints_u_quadprog(MPCParameters)\r\n%************************************************************************%\r\n% generate the constraints of the vehicle\r\n%  \r\n%************************************************************************%\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n\r\n    A   = [];\r\n    b   = [];\r\n    Aeq = [];\r\n    beq = [];\r\n\r\n%----(3) lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),umin);\r\n    ub=kron(ones(Nc,1),umax);\r\n% end %EoF\r\n\r\nfunction [A_t, lb, ub, lbA, ubA] = func_Constraints_u_qpOASES(MPCParameters)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n\r\n    A_t = [];\r\n    lbA = [];\r\n    ubA = [];\r\n%---- lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),umin);\r\n    ub=kron(ones(Nc,1),umax);\r\n% end %EoF\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/ReadMe",
    "content": "Use MPC tool-box for speed control\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/mpc_doubleint_for_speedctrl.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"mpc_doubleint_for_speedctrl\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.47\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    1\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      2\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [887.0, 191.0, 915.0, 779.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t3\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[865.0, 602.0]\r\n\tZoomFactor\t\t[1.0]\r\n\tOffset\t\t\t[0.0, -43.312504708766937]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed Aug 19 20:02:35 1998\"\r\n  Creator\t\t  \"rchen\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Tue Sep 03 17:34:36 2019\"\r\n  RTWModifiedTimeStamp\t  489432700\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:47>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  on\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  on\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    6\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"mpc_doubleint_for_speedctrl\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"mpc_doubleint_for_speedctrl\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"oneshot\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  off\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      7\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t8\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  8\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"5\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"auto\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"SingleTasking\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  off\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"sigsOut\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    4\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  off\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  on\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"none\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"TryResolveAllWithWarning\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"none\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"warning\"\r\n\t  MultiTaskCondExecSysMsg \"none\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"none\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  on\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  on\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      16\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t14\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 280, 124, 1160, 754 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    7\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    18\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Value\t\t      \"1\"\r\n      VectorParams1D\t      on\r\n      SamplingMode\t      \"Sample based\"\r\n      OutMin\t\t      \"[]\"\r\n      OutMax\t\t      \"[]\"\r\n      OutDataTypeStr\t      \"Inherit: Inherit from 'Constant value'\"\r\n      LockScale\t\t      off\r\n      SampleTime\t      \"inf\"\r\n      FramePeriod\t      \"inf\"\r\n      PreserveConstantTs      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Integrator\r\n      ExternalReset\t      \"none\"\r\n      InitialConditionSource  \"internal\"\r\n      InitialCondition\t      \"0\"\r\n      LimitOutput\t      off\r\n      UpperSaturationLimit    \"inf\"\r\n      LowerSaturationLimit    \"-inf\"\r\n      ShowSaturationPort      off\r\n      ShowStatePort\t      off\r\n      AbsoluteTolerance\t      \"auto\"\r\n      IgnoreLimit\t      off\r\n      ZeroCross\t\t      on\r\n      ContinuousStateAttributes\t\"''\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Inputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      UseBusObject\t      off\r\n      BusObject\t\t      \"BusObject\"\r\n      NonVirtualBus\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      ModelBased\t      off\r\n      TickLabels\t      \"OneTimeTick\"\r\n      ZoomMode\t\t      \"on\"\r\n      Grid\t\t      \"on\"\r\n      TimeRange\t\t      \"auto\"\r\n      YMin\t\t      \"-5\"\r\n      YMax\t\t      \"5\"\r\n      SaveToWorkspace\t      off\r\n      SaveName\t\t      \"ScopeData\"\r\n      DataFormat\t      \"Array\"\r\n      LimitDataPoints\t      on\r\n      MaxDataPoints\t      \"5000\"\r\n      Decimation\t      \"1\"\r\n      SampleInput\t      off\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"mpc_doubleint_for_speedctrl\"\r\n    Location\t\t    [887, 191, 1802, 970]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"usletter\"\r\n    PaperUnits\t\t    \"inches\"\r\n    TiledPaperMargins\t    [0.500000, 0.500000, 0.500000, 0.500000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"100\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"15\"\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Name\t\t      \"Constant\"\r\n      SID\t\t      \"1\"\r\n      Position\t\t      [40, 140, 60, 160]\r\n      ZOrder\t\t      -1\r\n      Value\t\t      \"r\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Input\"\r\n      SID\t\t      \"2\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [325, 170, 355, 200]\r\n      ZOrder\t\t      -2\r\n      Floating\t\t      off\r\n      Location\t\t      [775, 112, 1539, 316]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      ZoomMode\t\t      \"yonly\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      List {\r\n\tListType\t\tScopeGraphics\r\n\tFigureColor\t\t\"[0.5 0.5 0.5]\"\r\n\tAxesColor\t\t\"[0 0 0]\"\r\n\tAxesTickColor\t\t\"[1 1 1]\"\r\n\tLineColors\t\t\"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]\"\r\n\tLineStyles\t\t\"-|-|-|-|-|-\"\r\n\tLineWidths\t\t\"[0.5 0.5 0.5 0.5 0.5 0.5]\"\r\n\tMarkerStyles\t\t\"none|none|none|none|none|none\"\r\n      }\r\n      ShowLegends\t      off\r\n      TimeRange\t\t      \"6\"\r\n      YMin\t\t      \"-1\"\r\n      YMax\t\t      \"1\"\r\n      DataFormat\t      \"Structure\"\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Integrator\r\n      Name\t\t      \"Integrator 1\"\r\n      SID\t\t      \"3\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [330, 115, 360, 145]\r\n      ZOrder\t\t      -3\r\n      InitialCondition\t      \"x01\"\r\n      UpperSaturationLimit    \"Inf\"\r\n      LowerSaturationLimit    \"-Inf\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Integrator\r\n      Name\t\t      \"Integrator 2\"\r\n      SID\t\t      \"4\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [395, 115, 425, 145]\r\n      ZOrder\t\t      -4\r\n      InitialCondition\t      \"x02\"\r\n      UpperSaturationLimit    \"Inf\"\r\n      LowerSaturationLimit    \"-Inf\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"MPC Controller\"\r\n      SID\t\t      \"5\"\r\n      Ports\t\t      [2, 1]\r\n      Position\t\t      [160, 81, 275, 174]\r\n      ZOrder\t\t      -5\r\n      LibraryVersion\t      \"1.1223\"\r\n      SourceBlock\t      \"mpclib/MPC Controller\"\r\n      SourceType\t      \"MPC\"\r\n      ContentPreviewEnabled   off\r\n      mpcobj\t\t      \"mpc_controller\"\r\n      x0\t\t      \"[]\"\r\n      md_inport\t\t      off\r\n      mv_inport\t\t      off\r\n      lims_inport\t      off\r\n      switch_inport\t      off\r\n      ywt_inport\t      off\r\n      duwt_inport\t      off\r\n      rhoeps_inport\t      off\r\n      cost_outport\t      off\r\n      return_sequence\t      off\r\n      return_qpstatus\t      off\r\n      is_multiple\t      \"0\"\r\n      enable_value\t      \"0\"\r\n      n_mv\t\t      \"1\"\r\n      n_mo\t\t      \"1\"\r\n      n_md\t\t      \"0\"\r\n      n_ts\t\t      \"0.1\"\r\n      is_designfromscratch    \"0\"\r\n      BlockDataType\t      \"double\"\r\n      SampleTimeInherited     off\r\n      ref_from_ws\t      off\r\n      ref_signal_name\t      \"[]\"\r\n      ref_preview\t      on\r\n      md_from_ws\t      off\r\n      md_signal_name\t      \"[]\"\r\n      md_preview\t      on\r\n      from_project\t      off\r\n      project_file\t      \"MPCtask.mat\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux\"\r\n      SID\t\t      \"6\"\r\n      Ports\t\t      [2, 1]\r\n      Position\t\t      [550, 267, 555, 303]\r\n      ZOrder\t\t      -6\r\n      ShowName\t\t      off\r\n      Inputs\t\t      \"2\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Outputs/References\"\r\n      SID\t\t      \"7\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [595, 270, 625, 300]\r\n      ZOrder\t\t      -7\r\n      Floating\t\t      off\r\n      Location\t\t      [784, 260, 1535, 729]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      List {\r\n\tListType\t\tScopeGraphics\r\n\tFigureColor\t\t\"[0.5 0.5 0.5]\"\r\n\tAxesColor\t\t\"[0 0 0]\"\r\n\tAxesTickColor\t\t\"[1 1 1]\"\r\n\tLineColors\t\t\"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]\"\r\n\tLineStyles\t\t\"-|-|-|-|-|-\"\r\n\tLineWidths\t\t\"[0.5 0.5 0.5 0.5 0.5 0.5]\"\r\n\tMarkerStyles\t\t\"none|none|none|none|none|none\"\r\n      }\r\n      ShowLegends\t      off\r\n      TimeRange\t\t      \"5\"\r\n      YMin\t\t      \"0\"\r\n      YMax\t\t      \"1.5\"\r\n      DataFormat\t      \"Structure\"\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"8\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [560, 115, 620, 145]\r\n      ZOrder\t\t      -8\r\n      VariableName\t      \"y\"\r\n      MaxDataPoints\t      \"Inf\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"9\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [315, 230, 375, 260]\r\n      ZOrder\t\t      -9\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"Inf\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      1\r\n      SrcBlock\t\t      \"MPC Controller\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [10, 0]\r\n      Branch {\r\n\tZOrder\t\t\t2\r\n\tDstBlock\t\t\"Integrator 1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t3\r\n\tPoints\t\t\t[0, 55]\r\n\tBranch {\r\n\t  ZOrder\t\t  4\r\n\t  DstBlock\t\t  \"Input\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  ZOrder\t\t  5\r\n\t  Points\t\t  [0, 60]\r\n\t  DstBlock\t\t  \"To Workspace1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      6\r\n      SrcBlock\t\t      \"Integrator 2\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [84, 0]\r\n      Branch {\r\n\tZOrder\t\t\t27\r\n\tPoints\t\t\t[0, 145]\r\n\tDstBlock\t\t\"Mux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t26\r\n\tPoints\t\t\t[0, -111; -387, 0; 0, 86]\r\n\tDstBlock\t\t\"MPC Controller\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t7\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      10\r\n      SrcBlock\t\t      \"Mux\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Outputs/References\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      11\r\n      SrcBlock\t\t      \"Constant\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [65, 0]\r\n      Branch {\r\n\tZOrder\t\t\t12\r\n\tDstBlock\t\t\"MPC Controller\"\r\n\tDstPort\t\t\t2\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t13\r\n\tPoints\t\t\t[0, 145]\r\n\tDstBlock\t\t\"Mux\"\r\n\tDstPort\t\t\t2\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      14\r\n      SrcBlock\t\t      \"Integrator 1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Integrator 2\"\r\n      DstPort\t\t      1\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"11\"\r\n      Name\t\t      \"u(t)\"\r\n      Position\t\t      [303, 116, 326, 134]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -1\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      14\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"12\"\r\n      Name\t\t      \"y(t)\"\r\n      Position\t\t      [473, 116, 495, 134]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -2\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      14\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"13\"\r\n      Name\t\t      \"r(t)\"\r\n      Position\t\t      [98, 136, 118, 154]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -3\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      14\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"14\"\r\n      Name\t\t      \"Copyright 1990-2012 The MathWorks, Inc.\"\r\n      Position\t\t      [114, 330, 300, 345]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -4\r\n    }\r\n  }\r\n}\r\n# Finite State Machines\r\n#\r\n#    Stateflow Version 7.6 (R2013a) dated Aug  8 2013, 23:20:01\r\n#\r\n#\r\n\r\nStateflow {\r\n  machine {\r\n    id\t\t\t    1\r\n    name\t\t    \"mpc_doubleint_for_speedctrl\"\r\n    created\t\t    \"29-Dec-2010 09:22:52\"\r\n    isLibrary\t\t    0\r\n    firstTarget\t\t    2\r\n    sfVersion\t\t    76014001.0016\r\n  }\r\n  target {\r\n    id\t\t\t    2\r\n    name\t\t    \"sfun\"\r\n    description\t\t    \"Default Simulink S-Function Target.\"\r\n    machine\t\t    1\r\n    linkNode\t\t    [1 0 0]\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/mpcdoubleint_for_speed_control.m",
    "content": "%% Control of a Single-Input-Single-Output Plant\n% This example shows how to control a double integrator plant under input\n% saturation in Simulink(R).\n\n% Copyright 1990-2012 The MathWorks, Inc.\n% $Revision: 1.1.4.12 $  $Date: 2012/12/20 17:33:53 $   \n\n%% MPC Controller Setup \n% Create MPC controller in the workspace.\nTs = .1;                                    % Sampling time\np = 20;                                     % Prediction horizon\nm = 3;                                      % Control horizon\n% mpc_controller = mpc(tf(1,[1 0 0]),Ts,p,m); % MPC object\n% x_dot = Ax+Bu\n% y = Cx +Du\nA=[0 1; 0 0];\nB=[0; 1];\nC = [1 0];\nD = [0];\nmpc_controller = mpc(ss(A,B,C,D),Ts,p,m); % MPC object\nmpc_controller.MV=struct('Min',-1,'Max',1); % Input saturation constraints\n\n%% MPC Simulation Using Simulink(R)\n% The example uses Simulink(R).\nif ~mpcchecktoolboxinstalled('simulink')\n    disp('Simulink(R) is required to run this example.')\n    return\nend\n\n%%\n% Setup simulation parameters.\nx01=0;                                      % Initial state: First integrator\nx02=0;                                      % Initial state: Second integrator\nTstop=5;                                    % Simulation time\nr=2;                                        % Set point\n\n%% \n% Run simulation.\nopen_system('mpc_doubleint_for_speedctrl');               % Open Simulink(R) Model\nsim('mpc_doubleint_for_speedctrl',Tstop);                 % Start Simulation\n    \n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_doubleint_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_doubleint_sfun.h\"\r\n#include \"mpc_doubleint_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_doubleintMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_doubleint_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_doubleint_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_doubleint_method_dispatcher(SimStruct *simstructPtr,\r\n  unsigned int chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_process_check_sum_call( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1052687041U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1023940012U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(826374761U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2381960207U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2473893966U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(226489362U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(347409728U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1342070581U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1719576754U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2213199236U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1638559939U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(726424547U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_get_eml_resolved_functions_info( int nlhs, mxArray\r\n  * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_updateBuildInfo_args_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_doubleint_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpc_doubleintMachineNumber_ = sf_debug_initialize_machine(debugInstance,\r\n    \"mpc_doubleint\",\"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,\r\n    _mpc_doubleintMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,\r\n    _mpc_doubleintMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_doubleint_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_doubleint_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpc_doubleint\",\r\n      \"mpc_doubleint\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_doubleint_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun.h",
    "content": "#ifndef __mpc_doubleint_sfun_h__\r\n#define __mpc_doubleint_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_doubleintMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_doubleint_initializer(void);\r\nextern void mpc_doubleint_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_doubleint_optimization_info(void);\r\nextern void unload_mpc_doubleint_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_doubleint\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_doubleint_sfun.c\r\nMACHINE_REG = mpc_doubleint_sfun_registry.c\r\nMAKEFILE    = mpc_doubleint_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_doubleint_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_doubleint\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun.mol",
    "content": "mpc_doubleint_sfun.obj\r\nmpc_doubleint_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_doubleintMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleintMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_doubleintMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/mpc_doubleint_sfun_registry.c",
    "content": "#include \"mpc_doubleint_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_process_check_sum_call( int nlhs, mxArray\r\n    * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_doubleint_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_autoinheritance_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_doubleint_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_third_party_uses_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_doubleint_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_updateBuildInfo_args_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_doubleint_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_doubleint_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_doubleint_method_dispatcher(SimStruct *S, unsigned\r\n  int chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_doubleint\")) {\r\n    return(sf_mpc_doubleint_method_dispatcher(simstructPtr,chartFileNumber,\r\n            specsCksum,method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_doubleint_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_doubleint_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_doubleint_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_doubleint_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_doubleint_debug_initialize(struct SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_doubleint_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_doubleint_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_doubleint_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (20.0)\r\n#define c3_b_nu                        (1.0)\r\n#define c3_b_isQP                      (TRUE)\r\n#define c3_b_ny                        (1.0)\r\n#define c3_b_degrees                   (4.0)\r\n#define c3_b_uoff                      (0.0)\r\n#define c3_b_yoff                      (0.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (2.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier);\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[20]);\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20]);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[10]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[10]);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16]);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[63]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[24]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[16];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[6];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[3];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[60];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[60];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[63];\r\n  int32_T c3_i5;\r\n  real_T c3_dv6[6];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[12];\r\n  int32_T c3_i7;\r\n  real_T c3_dv8[6];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[126];\r\n  int32_T c3_i9;\r\n  real_T c3_dv10[4];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[20];\r\n  int32_T c3_i11;\r\n  real_T c3_d4;\r\n  real_T c3_d5;\r\n  real_T c3_d6;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_d17;\r\n  real_T c3_d18;\r\n  real_T c3_dv12[16];\r\n  int32_T c3_i12;\r\n  real_T c3_d19;\r\n  real_T c3_dv13[20];\r\n  int32_T c3_i13;\r\n  real_T c3_dv14[16];\r\n  int32_T c3_i14;\r\n  real_T c3_dv15[24];\r\n  int32_T c3_i15;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  real_T c3_d32;\r\n  real_T c3_d33;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i0 = 0; c3_i0 < 16; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 2, 3);\r\n  for (c3_i1 = 0; c3_i1 < 6; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i2 = 0; c3_i2 < 3; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 20, 3);\r\n  for (c3_i3 = 0; c3_i3 < 60; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 20, 3);\r\n  for (c3_i4 = 0; c3_i4 < 60; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 21, 3);\r\n  for (c3_i5 = 0; c3_i5 < 63; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i6 = 0; c3_i6 < 6; c3_i6++) {\r\n    chartInstance->c3_Mlim[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 6, 2);\r\n  for (c3_i7 = 0; c3_i7 < 12; c3_i7++) {\r\n    chartInstance->c3_Mx[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i8 = 0; c3_i8 < 6; c3_i8++) {\r\n    chartInstance->c3_Mu1[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 2, 6, 21);\r\n  for (c3_i9 = 0; c3_i9 < 126; c3_i9++) {\r\n    chartInstance->c3_Mv[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i10 = 0; c3_i10 < 4; c3_i10++) {\r\n    chartInstance->c3_z_degrees[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 20);\r\n  for (c3_i11 = 0; c3_i11 < 20; c3_i11++) {\r\n    chartInstance->c3_utarget[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_uoff = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_yoff = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d7;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d9 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i12 = 0; c3_i12 < 16; c3_i12++) {\r\n    chartInstance->c3_H[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv13, 0, 0, 0U, 1, 0U, 2, 1, 20);\r\n  for (c3_i13 = 0; c3_i13 < 20; c3_i13++) {\r\n    chartInstance->c3_blocking_moves[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i14 = 0; c3_i14 < 16; c3_i14++) {\r\n    chartInstance->c3_Linv[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv15, 0, 0, 0U, 1, 0U, 2, 6, 4);\r\n  for (c3_i15 = 0; c3_i15 < 24; c3_i15++) {\r\n    chartInstance->c3_Ac[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d32, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d32;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d33, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d33;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i16;\r\n  boolean_T c3_b_u[10];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i17;\r\n  real_T c3_e_u[20];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_d_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_g_u;\r\n  real_T (*c3_useq)[20];\r\n  boolean_T (*c3_iAout)[10];\r\n  c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i16 = 0; c3_i16 < 10; c3_i16++) {\r\n    c3_b_u[c3_i16] = (*c3_iAout)[c3_i16];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 10),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  c3_c_hoistedGlobal = *c3_g_u;\r\n  c3_d_u = c3_c_hoistedGlobal;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i17 = 0; c3_i17 < 20; c3_i17++) {\r\n    c3_e_u[c3_i17] = (*c3_useq)[c3_i17];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_d_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_d_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[10];\r\n  int32_T c3_i18;\r\n  real_T c3_dv16[20];\r\n  int32_T c3_i19;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_b_u;\r\n  boolean_T (*c3_iAout)[10];\r\n  real_T (*c3_useq)[20];\r\n  c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i18 = 0; c3_i18 < 10; c3_i18++) {\r\n    (*c3_iAout)[c3_i18] = c3_bv0[c3_i18];\r\n  }\r\n\r\n  *c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    2)), \"status\");\r\n  *c3_b_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)),\r\n    \"u\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv16);\r\n  for (c3_i19 = 0; c3_i19 < 20; c3_i19++) {\r\n    (*c3_useq)[c3_i19] = c3_dv16[c3_i19];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_t_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i20;\r\n  int32_T c3_i21;\r\n  int32_T c3_i22;\r\n  int32_T c3_i23;\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  real_T *c3_old_u;\r\n  real_T *c3_umin;\r\n  real_T *c3_umax;\r\n  real_T *c3_ymin;\r\n  real_T *c3_ymax;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_ywt;\r\n  real_T *c3_duwt;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_u;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[10];\r\n  real_T (*c3_useq)[20];\r\n  boolean_T (*c3_iA)[10];\r\n  real_T (*c3_x)[2];\r\n  real_T (*c3_vseq)[21];\r\n  real_T (*c3_rseq)[20];\r\n  c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[10])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[21])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i20 = 0; c3_i20 < 20; c3_i20++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i20], 0U);\r\n  }\r\n\r\n  for (c3_i21 = 0; c3_i21 < 21; c3_i21++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i21], 1U);\r\n  }\r\n\r\n  for (c3_i22 = 0; c3_i22 < 2; c3_i22++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i22], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_old_u, 3U);\r\n  for (c3_i23 = 0; c3_i23 < 10; c3_i23++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i23], 4U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_umin, 5U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_umax, 6U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymin, 7U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymax, 8U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ywt, 10U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_duwt, 11U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_u, 13U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i24 = 0; c3_i24 < 20; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i24], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i25 = 0; c3_i25 < 16; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i25], 21U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 6; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i26], 22U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i27], 23U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 60; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i28], 24U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 60; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i29], 25U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 63; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i30], 26U);\r\n  }\r\n\r\n  for (c3_i31 = 0; c3_i31 < 6; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim[c3_i31], 27U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 12; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i32], 28U);\r\n  }\r\n\r\n  for (c3_i33 = 0; c3_i33 < 6; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i33], 29U);\r\n  }\r\n\r\n  for (c3_i34 = 0; c3_i34 < 126; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv[c3_i34], 30U);\r\n  }\r\n\r\n  for (c3_i35 = 0; c3_i35 < 4; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i35], 31U);\r\n  }\r\n\r\n  for (c3_i36 = 0; c3_i36 < 20; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i36], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff, 34U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff, 35U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i37 = 0; c3_i37 < 16; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i37], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i38 = 0; c3_i38 < 20; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i38], 50U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 16; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i39], 51U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 24; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i40], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i41 = 0; c3_i41 < 10; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i41], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_hoistedGlobal;\r\n  real_T c3_e_hoistedGlobal;\r\n  real_T c3_f_hoistedGlobal;\r\n  real_T c3_g_hoistedGlobal;\r\n  real_T c3_h_hoistedGlobal;\r\n  real_T c3_i_hoistedGlobal;\r\n  int32_T c3_i42;\r\n  real_T c3_rseq[20];\r\n  int32_T c3_i43;\r\n  real_T c3_vseq[21];\r\n  int32_T c3_i44;\r\n  real_T c3_x[2];\r\n  real_T c3_old_u;\r\n  int32_T c3_i45;\r\n  boolean_T c3_iA[10];\r\n  real_T c3_umin;\r\n  real_T c3_umax;\r\n  real_T c3_ymin;\r\n  real_T c3_ymax;\r\n  real_T c3_switch_in;\r\n  real_T c3_ywt;\r\n  real_T c3_duwt;\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[16];\r\n  real_T c3_c_Kx[6];\r\n  real_T c3_c_Ku1[3];\r\n  real_T c3_c_Kut[60];\r\n  real_T c3_c_Kr[60];\r\n  real_T c3_c_Kv[63];\r\n  real_T c3_c_Mlim[6];\r\n  real_T c3_c_Mx[12];\r\n  real_T c3_c_Mu1[6];\r\n  real_T c3_c_Mv[126];\r\n  real_T c3_c_z_degrees[4];\r\n  real_T c3_c_utarget[20];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff;\r\n  real_T c3_c_yoff;\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[16];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[20];\r\n  real_T c3_c_Linv[16];\r\n  real_T c3_c_Ac[24];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u;\r\n  real_T c3_cost;\r\n  real_T c3_useq[20];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[10];\r\n  int32_T c3_i46;\r\n  static real_T c3_d_Ac[24] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -0.0, -1.0,\r\n    -1.0, -0.0, 1.0, 1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0 };\r\n\r\n  int32_T c3_i47;\r\n  static real_T c3_d_Linv[16] = { 0.23520200811439571, -4.8978830782919456,\r\n    0.73799858039642308, 0.0, 0.0, 5.5567121987275856, -5.9375612767978332, 0.0,\r\n    0.0, 0.0, 5.8281111841008046, 0.0, 0.0, 0.0, 0.0, 0.003162277660168379 };\r\n\r\n  int32_T c3_i48;\r\n  static real_T c3_d_blocking_moves[20] = { 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i49;\r\n  static real_T c3_d_H[16] = { 18.076650000000004, 15.9334, 13.943625000000003,\r\n    0.0, 15.9334, 14.07665, 12.323400000000001, 0.0, 13.943625000000003,\r\n    12.323400000000001, 10.818625000000003, 0.0, 0.0, 0.0, 0.0, 100000.0 };\r\n\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  int32_T c3_i52;\r\n  int32_T c3_i53;\r\n  static real_T c3_d_Mu1[6] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0 };\r\n\r\n  int32_T c3_i54;\r\n  int32_T c3_i55;\r\n  int32_T c3_i56;\r\n  int32_T c3_i57;\r\n  static real_T c3_d_Kr[60] = { -0.005000000000000001, -0.020000000000000004,\r\n    -0.045000000000000012, -0.080000000000000016, -0.12500000000000003,\r\n    -0.18000000000000005, -0.24500000000000005, -0.32000000000000006,\r\n    -0.40500000000000008, -0.50000000000000011, -0.60500000000000009,\r\n    -0.72000000000000008, -0.84500000000000008, -0.98000000000000009, -1.125,\r\n    -1.28, -1.445, -1.62, -1.8050000000000002, -2.0, -0.0, -0.005000000000000001,\r\n    -0.020000000000000004, -0.045000000000000012, -0.080000000000000016,\r\n    -0.12500000000000003, -0.18000000000000005, -0.24500000000000005,\r\n    -0.32000000000000006, -0.40500000000000008, -0.50000000000000011,\r\n    -0.60500000000000009, -0.72000000000000008, -0.84500000000000008,\r\n    -0.98000000000000009, -1.125, -1.28, -1.445, -1.62, -1.8050000000000002,\r\n    -0.0, -0.0, -0.005000000000000001, -0.020000000000000004,\r\n    -0.045000000000000012, -0.080000000000000016, -0.12500000000000003,\r\n    -0.18000000000000005, -0.24500000000000005, -0.32000000000000006,\r\n    -0.40500000000000008, -0.50000000000000011, -0.60500000000000009,\r\n    -0.72000000000000008, -0.84500000000000008, -0.98000000000000009, -1.125,\r\n    -1.28, -1.445, -1.62 };\r\n\r\n  int32_T c3_i58;\r\n  int32_T c3_i59;\r\n  static real_T c3_d_Ku1[3] = { 18.066650000000003, 15.933400000000002,\r\n    13.943625 };\r\n\r\n  int32_T c3_i60;\r\n  static real_T c3_d_Kx[6] = { 14.350000000000001, 22.050000000000004,\r\n    12.350000000000001, 19.285000000000004, 10.545000000000002,\r\n    16.729500000000005 };\r\n\r\n  int32_T c3_i61;\r\n  static real_T c3_d_Hinv[16] = { 24.589220537906762, -31.598038442379849,\r\n    4.3011377802589106, 0.0, -31.598038442379849, 66.131684375217077,\r\n    -34.604767283589304, 0.0, 4.3011377802589106, -34.604767283589304,\r\n    33.966879974240882, 0.0, 0.0, 0.0, 0.0, 9.9999999999999974E-6 };\r\n\r\n  int32_T c3_i62;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i63;\r\n  int32_T c3_i64;\r\n  int32_T c3_i65;\r\n  real_T c3_b_u[20];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i66;\r\n  real_T c3_c_u[21];\r\n  const mxArray *c3_b_y = NULL;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_e_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_f_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  real_T c3_g_u;\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i67;\r\n  real_T c3_i_u[2];\r\n  const mxArray *c3_h_y = NULL;\r\n  real_T c3_j_u;\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i68;\r\n  boolean_T c3_k_u[10];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i69;\r\n  real_T c3_p_u[16];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i70;\r\n  real_T c3_q_u[6];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i71;\r\n  real_T c3_r_u[3];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i72;\r\n  real_T c3_s_u[60];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i73;\r\n  real_T c3_t_u[60];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i74;\r\n  real_T c3_u_u[63];\r\n  const mxArray *c3_t_y = NULL;\r\n  int32_T c3_i75;\r\n  real_T c3_v_u[6];\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i76;\r\n  real_T c3_w_u[12];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i77;\r\n  real_T c3_x_u[6];\r\n  const mxArray *c3_w_y = NULL;\r\n  int32_T c3_i78;\r\n  real_T c3_y_u[126];\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i79;\r\n  real_T c3_ab_u[4];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i80;\r\n  real_T c3_bb_u[20];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  real_T c3_db_u;\r\n  const mxArray *c3_cb_y = NULL;\r\n  real_T c3_eb_u;\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i81;\r\n  real_T c3_rb_u[16];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i82;\r\n  real_T c3_tb_u[20];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i83;\r\n  real_T c3_ub_u[16];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i84;\r\n  real_T c3_vb_u[24];\r\n  const mxArray *c3_ub_y = NULL;\r\n  real_T c3_wb_u;\r\n  const mxArray *c3_vb_y = NULL;\r\n  real_T c3_xb_u;\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv17[20];\r\n  int32_T c3_i85;\r\n  boolean_T c3_bv1[10];\r\n  int32_T c3_i86;\r\n  int32_T c3_i87;\r\n  int32_T c3_i88;\r\n  real_T *c3_b_old_u;\r\n  real_T *c3_b_umin;\r\n  real_T *c3_b_umax;\r\n  real_T *c3_b_ymin;\r\n  real_T *c3_b_ymax;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_ywt;\r\n  real_T *c3_b_duwt;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_pc_u;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_c_useq)[20];\r\n  boolean_T (*c3_c_iAout)[10];\r\n  boolean_T (*c3_b_iA)[10];\r\n  real_T (*c3_b_x)[2];\r\n  real_T (*c3_b_vseq)[21];\r\n  real_T (*c3_b_rseq)[20];\r\n  c3_c_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[10])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[21])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_old_u;\r\n  c3_b_hoistedGlobal = *c3_b_umin;\r\n  c3_c_hoistedGlobal = *c3_b_umax;\r\n  c3_d_hoistedGlobal = *c3_b_ymin;\r\n  c3_e_hoistedGlobal = *c3_b_ymax;\r\n  c3_f_hoistedGlobal = *c3_b_switch_in;\r\n  c3_g_hoistedGlobal = *c3_b_ywt;\r\n  c3_h_hoistedGlobal = *c3_b_duwt;\r\n  c3_i_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i42 = 0; c3_i42 < 20; c3_i42++) {\r\n    c3_rseq[c3_i42] = (*c3_b_rseq)[c3_i42];\r\n  }\r\n\r\n  for (c3_i43 = 0; c3_i43 < 21; c3_i43++) {\r\n    c3_vseq[c3_i43] = (*c3_b_vseq)[c3_i43];\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 2; c3_i44++) {\r\n    c3_x[c3_i44] = (*c3_b_x)[c3_i44];\r\n  }\r\n\r\n  c3_old_u = c3_hoistedGlobal;\r\n  for (c3_i45 = 0; c3_i45 < 10; c3_i45++) {\r\n    c3_iA[c3_i45] = (*c3_b_iA)[c3_i45];\r\n  }\r\n\r\n  c3_umin = c3_b_hoistedGlobal;\r\n  c3_umax = c3_c_hoistedGlobal;\r\n  c3_ymin = c3_d_hoistedGlobal;\r\n  c3_ymax = c3_e_hoistedGlobal;\r\n  c3_switch_in = c3_f_hoistedGlobal;\r\n  c3_ywt = c3_g_hoistedGlobal;\r\n  c3_duwt = c3_h_hoistedGlobal;\r\n  c3_rhoeps = c3_i_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mlim, 11U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mv, 14U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_uoff, 18U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_yoff, 19U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_old_u, 56U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umin, 58U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umax, 59U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymin, 60U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymax, 61U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ywt, 63U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_duwt, 64U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_u, 66U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i46 = 0; c3_i46 < 24; c3_i46++) {\r\n    c3_c_Ac[c3_i46] = c3_d_Ac[c3_i46];\r\n  }\r\n\r\n  for (c3_i47 = 0; c3_i47 < 16; c3_i47++) {\r\n    c3_c_Linv[c3_i47] = c3_d_Linv[c3_i47];\r\n  }\r\n\r\n  for (c3_i48 = 0; c3_i48 < 20; c3_i48++) {\r\n    c3_c_blocking_moves[c3_i48] = c3_d_blocking_moves[c3_i48];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i49 = 0; c3_i49 < 16; c3_i49++) {\r\n    c3_c_H[c3_i49] = c3_d_H[c3_i49];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  c3_c_yoff = c3_b_yoff;\r\n  c3_c_uoff = c3_b_uoff;\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i50 = 0; c3_i50 < 20; c3_i50++) {\r\n    c3_c_utarget[c3_i50] = 0.0;\r\n  }\r\n\r\n  for (c3_i51 = 0; c3_i51 < 4; c3_i51++) {\r\n    c3_c_z_degrees[c3_i51] = 0.0;\r\n  }\r\n\r\n  for (c3_i52 = 0; c3_i52 < 126; c3_i52++) {\r\n    c3_c_Mv[c3_i52] = 0.0;\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 6; c3_i53++) {\r\n    c3_c_Mu1[c3_i53] = c3_d_Mu1[c3_i53];\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 12; c3_i54++) {\r\n    c3_c_Mx[c3_i54] = 0.0;\r\n  }\r\n\r\n  for (c3_i55 = 0; c3_i55 < 6; c3_i55++) {\r\n    c3_c_Mlim[c3_i55] = 1.0;\r\n  }\r\n\r\n  for (c3_i56 = 0; c3_i56 < 63; c3_i56++) {\r\n    c3_c_Kv[c3_i56] = 0.0;\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 60; c3_i57++) {\r\n    c3_c_Kr[c3_i57] = c3_d_Kr[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 60; c3_i58++) {\r\n    c3_c_Kut[c3_i58] = 0.0;\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 3; c3_i59++) {\r\n    c3_c_Ku1[c3_i59] = c3_d_Ku1[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 6; c3_i60++) {\r\n    c3_c_Kx[c3_i60] = c3_d_Kx[c3_i60];\r\n  }\r\n\r\n  for (c3_i61 = 0; c3_i61 < 16; c3_i61++) {\r\n    c3_c_Hinv[c3_i61] = c3_d_Hinv[c3_i61];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i62 = 0; c3_i62 < 6; c3_i62++) {\r\n    c3_DataType[c3_i62] = c3_cv0[c3_i62];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  c3_u = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i63 = 0; c3_i63 < 20; c3_i63++) {\r\n    c3_useq[c3_i63] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i64 = 0; c3_i64 < 10; c3_i64++) {\r\n    c3_iAout[c3_i64] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i65 = 0; c3_i65 < 20; c3_i65++) {\r\n    c3_b_u[c3_i65] = c3_rseq[c3_i65];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  for (c3_i66 = 0; c3_i66 < 21; c3_i66++) {\r\n    c3_c_u[c3_i66] = c3_vseq[c3_i66];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  c3_d_u = c3_umin;\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_e_u = c3_umax;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_f_u = c3_ymin;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_g_u = c3_ymax;\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", &c3_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i67 = 0; c3_i67 < 2; c3_i67++) {\r\n    c3_i_u[c3_i67] = c3_x[c3_i67];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c3_j_u = c3_old_u;\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", &c3_j_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i68 = 0; c3_i68 < 10; c3_i68++) {\r\n    c3_k_u[c3_i68] = c3_iA[c3_i68];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 10),\r\n                FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i69 = 0; c3_i69 < 16; c3_i69++) {\r\n    c3_p_u[c3_i69] = c3_d_Hinv[c3_i69];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i70 = 0; c3_i70 < 6; c3_i70++) {\r\n    c3_q_u[c3_i70] = c3_d_Kx[c3_i70];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 2, 3),\r\n                FALSE);\r\n  for (c3_i71 = 0; c3_i71 < 3; c3_i71++) {\r\n    c3_r_u[c3_i71] = c3_d_Ku1[c3_i71];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 1, 3),\r\n                FALSE);\r\n  for (c3_i72 = 0; c3_i72 < 60; c3_i72++) {\r\n    c3_s_u[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 20, 3),\r\n                FALSE);\r\n  for (c3_i73 = 0; c3_i73 < 60; c3_i73++) {\r\n    c3_t_u[c3_i73] = c3_d_Kr[c3_i73];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 20, 3),\r\n                FALSE);\r\n  for (c3_i74 = 0; c3_i74 < 63; c3_i74++) {\r\n    c3_u_u[c3_i74] = 0.0;\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 21, 3),\r\n                FALSE);\r\n  for (c3_i75 = 0; c3_i75 < 6; c3_i75++) {\r\n    c3_v_u[c3_i75] = 1.0;\r\n  }\r\n\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", c3_v_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i76 = 0; c3_i76 < 12; c3_i76++) {\r\n    c3_w_u[c3_i76] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 6, 2),\r\n                FALSE);\r\n  for (c3_i77 = 0; c3_i77 < 6; c3_i77++) {\r\n    c3_x_u[c3_i77] = c3_d_Mu1[c3_i77];\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i78 = 0; c3_i78 < 126; c3_i78++) {\r\n    c3_y_u[c3_i78] = 0.0;\r\n  }\r\n\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", c3_y_u, 0, 0U, 1U, 0U, 2, 6, 21),\r\n                FALSE);\r\n  for (c3_i79 = 0; c3_i79 < 4; c3_i79++) {\r\n    c3_ab_u[c3_i79] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  for (c3_i80 = 0; c3_i80 < 20; c3_i80++) {\r\n    c3_bb_u[c3_i80] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 20),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_db_u = c3_b_uoff;\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", &c3_db_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_eb_u = c3_b_yoff;\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", &c3_eb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i81 = 0; c3_i81 < 16; c3_i81++) {\r\n    c3_rb_u[c3_i81] = c3_d_H[c3_i81];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i82 = 0; c3_i82 < 20; c3_i82++) {\r\n    c3_tb_u[c3_i82] = c3_d_blocking_moves[c3_i82];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 20),\r\n                FALSE);\r\n  for (c3_i83 = 0; c3_i83 < 16; c3_i83++) {\r\n    c3_ub_u[c3_i83] = c3_d_Linv[c3_i83];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i84 = 0; c3_i84 < 24; c3_i84++) {\r\n    c3_vb_u[c3_i84] = c3_d_Ac[c3_i84];\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 6, 4),\r\n                FALSE);\r\n  c3_wb_u = c3_ywt;\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", &c3_wb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_xb_u = c3_duwt;\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", &c3_xb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\");\r\n  c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv17);\r\n  for (c3_i85 = 0; c3_i85 < 20; c3_i85++) {\r\n    c3_useq[c3_i85] = c3_dv17[c3_i85];\r\n  }\r\n\r\n  c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i86 = 0; c3_i86 < 10; c3_i86++) {\r\n    c3_iAout[c3_i86] = c3_bv1[c3_i86];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  *c3_pc_u = c3_u;\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i87 = 0; c3_i87 < 20; c3_i87++) {\r\n    (*c3_c_useq)[c3_i87] = c3_useq[c3_i87];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i88 = 0; c3_i88 < 10; c3_i88++) {\r\n    (*c3_c_iAout)[c3_i88] = c3_iAout[c3_i88];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i89;\r\n  boolean_T c3_b_inData[10];\r\n  int32_T c3_i90;\r\n  boolean_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i89 = 0; c3_i89 < 10; c3_i89++) {\r\n    c3_b_inData[c3_i89] = (*(boolean_T (*)[10])c3_inData)[c3_i89];\r\n  }\r\n\r\n  for (c3_i90 = 0; c3_i90 < 10; c3_i90++) {\r\n    c3_u[c3_i90] = c3_b_inData[c3_i90];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[10];\r\n  int32_T c3_i91;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i91 = 0; c3_i91 < 10; c3_i91++) {\r\n    (*(boolean_T (*)[10])c3_outData)[c3_i91] = c3_y[c3_i91];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_b_inData[20];\r\n  int32_T c3_i93;\r\n  real_T c3_u[20];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i92 = 0; c3_i92 < 20; c3_i92++) {\r\n    c3_b_inData[c3_i92] = (*(real_T (*)[20])c3_inData)[c3_i92];\r\n  }\r\n\r\n  for (c3_i93 = 0; c3_i93 < 20; c3_i93++) {\r\n    c3_u[c3_i93] = c3_b_inData[c3_i93];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[20];\r\n  int32_T c3_i94;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  for (c3_i94 = 0; c3_i94 < 20; c3_i94++) {\r\n    (*(real_T (*)[20])c3_outData)[c3_i94] = c3_y[c3_i94];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_b_inData[2];\r\n  int32_T c3_i96;\r\n  real_T c3_u[2];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i95 = 0; c3_i95 < 2; c3_i95++) {\r\n    c3_b_inData[c3_i95] = (*(real_T (*)[2])c3_inData)[c3_i95];\r\n  }\r\n\r\n  for (c3_i96 = 0; c3_i96 < 2; c3_i96++) {\r\n    c3_u[c3_i96] = c3_b_inData[c3_i96];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i97;\r\n  real_T c3_b_inData[21];\r\n  int32_T c3_i98;\r\n  real_T c3_u[21];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i97 = 0; c3_i97 < 21; c3_i97++) {\r\n    c3_b_inData[c3_i97] = (*(real_T (*)[21])c3_inData)[c3_i97];\r\n  }\r\n\r\n  for (c3_i98 = 0; c3_i98 < 21; c3_i98++) {\r\n    c3_u[c3_i98] = c3_b_inData[c3_i98];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i99;\r\n  int32_T c3_i100;\r\n  int32_T c3_i101;\r\n  real_T c3_b_inData[24];\r\n  int32_T c3_i102;\r\n  int32_T c3_i103;\r\n  int32_T c3_i104;\r\n  real_T c3_u[24];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i99 = 0;\r\n  for (c3_i100 = 0; c3_i100 < 4; c3_i100++) {\r\n    for (c3_i101 = 0; c3_i101 < 6; c3_i101++) {\r\n      c3_b_inData[c3_i101 + c3_i99] = (*(real_T (*)[24])c3_inData)[c3_i101 +\r\n        c3_i99];\r\n    }\r\n\r\n    c3_i99 += 6;\r\n  }\r\n\r\n  c3_i102 = 0;\r\n  for (c3_i103 = 0; c3_i103 < 4; c3_i103++) {\r\n    for (c3_i104 = 0; c3_i104 < 6; c3_i104++) {\r\n      c3_u[c3_i104 + c3_i102] = c3_b_inData[c3_i104 + c3_i102];\r\n    }\r\n\r\n    c3_i102 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i105;\r\n  int32_T c3_i106;\r\n  int32_T c3_i107;\r\n  real_T c3_b_inData[16];\r\n  int32_T c3_i108;\r\n  int32_T c3_i109;\r\n  int32_T c3_i110;\r\n  real_T c3_u[16];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i105 = 0;\r\n  for (c3_i106 = 0; c3_i106 < 4; c3_i106++) {\r\n    for (c3_i107 = 0; c3_i107 < 4; c3_i107++) {\r\n      c3_b_inData[c3_i107 + c3_i105] = (*(real_T (*)[16])c3_inData)[c3_i107 +\r\n        c3_i105];\r\n    }\r\n\r\n    c3_i105 += 4;\r\n  }\r\n\r\n  c3_i108 = 0;\r\n  for (c3_i109 = 0; c3_i109 < 4; c3_i109++) {\r\n    for (c3_i110 = 0; c3_i110 < 4; c3_i110++) {\r\n      c3_u[c3_i110 + c3_i108] = c3_b_inData[c3_i110 + c3_i108];\r\n    }\r\n\r\n    c3_i108 += 4;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 4, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i111;\r\n  real_T c3_b_inData[20];\r\n  int32_T c3_i112;\r\n  real_T c3_u[20];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i111 = 0; c3_i111 < 20; c3_i111++) {\r\n    c3_b_inData[c3_i111] = (*(real_T (*)[20])c3_inData)[c3_i111];\r\n  }\r\n\r\n  for (c3_i112 = 0; c3_i112 < 20; c3_i112++) {\r\n    c3_u[c3_i112] = c3_b_inData[c3_i112];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 20), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i113;\r\n  real_T c3_b_inData[4];\r\n  int32_T c3_i114;\r\n  real_T c3_u[4];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i113 = 0; c3_i113 < 4; c3_i113++) {\r\n    c3_b_inData[c3_i113] = (*(real_T (*)[4])c3_inData)[c3_i113];\r\n  }\r\n\r\n  for (c3_i114 = 0; c3_i114 < 4; c3_i114++) {\r\n    c3_u[c3_i114] = c3_b_inData[c3_i114];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i115;\r\n  int32_T c3_i116;\r\n  int32_T c3_i117;\r\n  real_T c3_b_inData[126];\r\n  int32_T c3_i118;\r\n  int32_T c3_i119;\r\n  int32_T c3_i120;\r\n  real_T c3_u[126];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i115 = 0;\r\n  for (c3_i116 = 0; c3_i116 < 21; c3_i116++) {\r\n    for (c3_i117 = 0; c3_i117 < 6; c3_i117++) {\r\n      c3_b_inData[c3_i117 + c3_i115] = (*(real_T (*)[126])c3_inData)[c3_i117 +\r\n        c3_i115];\r\n    }\r\n\r\n    c3_i115 += 6;\r\n  }\r\n\r\n  c3_i118 = 0;\r\n  for (c3_i119 = 0; c3_i119 < 21; c3_i119++) {\r\n    for (c3_i120 = 0; c3_i120 < 6; c3_i120++) {\r\n      c3_u[c3_i120 + c3_i118] = c3_b_inData[c3_i120 + c3_i118];\r\n    }\r\n\r\n    c3_i118 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 21), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i121;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i122;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i121 = 0; c3_i121 < 6; c3_i121++) {\r\n    c3_b_inData[c3_i121] = (*(real_T (*)[6])c3_inData)[c3_i121];\r\n  }\r\n\r\n  for (c3_i122 = 0; c3_i122 < 6; c3_i122++) {\r\n    c3_u[c3_i122] = c3_b_inData[c3_i122];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i123;\r\n  int32_T c3_i124;\r\n  int32_T c3_i125;\r\n  real_T c3_b_inData[12];\r\n  int32_T c3_i126;\r\n  int32_T c3_i127;\r\n  int32_T c3_i128;\r\n  real_T c3_u[12];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i123 = 0;\r\n  for (c3_i124 = 0; c3_i124 < 2; c3_i124++) {\r\n    for (c3_i125 = 0; c3_i125 < 6; c3_i125++) {\r\n      c3_b_inData[c3_i125 + c3_i123] = (*(real_T (*)[12])c3_inData)[c3_i125 +\r\n        c3_i123];\r\n    }\r\n\r\n    c3_i123 += 6;\r\n  }\r\n\r\n  c3_i126 = 0;\r\n  for (c3_i127 = 0; c3_i127 < 2; c3_i127++) {\r\n    for (c3_i128 = 0; c3_i128 < 6; c3_i128++) {\r\n      c3_u[c3_i128 + c3_i126] = c3_b_inData[c3_i128 + c3_i126];\r\n    }\r\n\r\n    c3_i126 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i129;\r\n  int32_T c3_i130;\r\n  int32_T c3_i131;\r\n  real_T c3_b_inData[63];\r\n  int32_T c3_i132;\r\n  int32_T c3_i133;\r\n  int32_T c3_i134;\r\n  real_T c3_u[63];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i129 = 0;\r\n  for (c3_i130 = 0; c3_i130 < 3; c3_i130++) {\r\n    for (c3_i131 = 0; c3_i131 < 21; c3_i131++) {\r\n      c3_b_inData[c3_i131 + c3_i129] = (*(real_T (*)[63])c3_inData)[c3_i131 +\r\n        c3_i129];\r\n    }\r\n\r\n    c3_i129 += 21;\r\n  }\r\n\r\n  c3_i132 = 0;\r\n  for (c3_i133 = 0; c3_i133 < 3; c3_i133++) {\r\n    for (c3_i134 = 0; c3_i134 < 21; c3_i134++) {\r\n      c3_u[c3_i134 + c3_i132] = c3_b_inData[c3_i134 + c3_i132];\r\n    }\r\n\r\n    c3_i132 += 21;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 21, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i135;\r\n  int32_T c3_i136;\r\n  int32_T c3_i137;\r\n  real_T c3_b_inData[60];\r\n  int32_T c3_i138;\r\n  int32_T c3_i139;\r\n  int32_T c3_i140;\r\n  real_T c3_u[60];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i135 = 0;\r\n  for (c3_i136 = 0; c3_i136 < 3; c3_i136++) {\r\n    for (c3_i137 = 0; c3_i137 < 20; c3_i137++) {\r\n      c3_b_inData[c3_i137 + c3_i135] = (*(real_T (*)[60])c3_inData)[c3_i137 +\r\n        c3_i135];\r\n    }\r\n\r\n    c3_i135 += 20;\r\n  }\r\n\r\n  c3_i138 = 0;\r\n  for (c3_i139 = 0; c3_i139 < 3; c3_i139++) {\r\n    for (c3_i140 = 0; c3_i140 < 20; c3_i140++) {\r\n      c3_u[c3_i140 + c3_i138] = c3_b_inData[c3_i140 + c3_i138];\r\n    }\r\n\r\n    c3_i138 += 20;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 20, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i142;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i141 = 0; c3_i141 < 3; c3_i141++) {\r\n    c3_b_inData[c3_i141] = (*(real_T (*)[3])c3_inData)[c3_i141];\r\n  }\r\n\r\n  for (c3_i142 = 0; c3_i142 < 3; c3_i142++) {\r\n    c3_u[c3_i142] = c3_b_inData[c3_i142];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i143;\r\n  int32_T c3_i144;\r\n  int32_T c3_i145;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i146;\r\n  int32_T c3_i147;\r\n  int32_T c3_i148;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i143 = 0;\r\n  for (c3_i144 = 0; c3_i144 < 3; c3_i144++) {\r\n    for (c3_i145 = 0; c3_i145 < 2; c3_i145++) {\r\n      c3_b_inData[c3_i145 + c3_i143] = (*(real_T (*)[6])c3_inData)[c3_i145 +\r\n        c3_i143];\r\n    }\r\n\r\n    c3_i143 += 2;\r\n  }\r\n\r\n  c3_i146 = 0;\r\n  for (c3_i147 = 0; c3_i147 < 3; c3_i147++) {\r\n    for (c3_i148 = 0; c3_i148 < 2; c3_i148++) {\r\n      c3_u[c3_i148 + c3_i146] = c3_b_inData[c3_i148 + c3_i146];\r\n    }\r\n\r\n    c3_i146 += 2;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 2, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i149;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i150;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i149 = 0; c3_i149 < 6; c3_i149++) {\r\n    c3_b_inData[c3_i149] = (*(char_T (*)[6])c3_inData)[c3_i149];\r\n  }\r\n\r\n  for (c3_i150 = 0; c3_i150 < 6; c3_i150++) {\r\n    c3_u[c3_i150] = c3_b_inData[c3_i150];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d34;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d34, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d34;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[20])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20])\r\n{\r\n  real_T c3_dv18[20];\r\n  int32_T c3_i151;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv18, 1, 0, 0U, 1, 0U, 1, 20);\r\n  for (c3_i151 = 0; c3_i151 < 20; c3_i151++) {\r\n    c3_y[c3_i151] = c3_dv18[c3_i151];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[10])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[10])\r\n{\r\n  boolean_T c3_bv2[10];\r\n  int32_T c3_i152;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 10);\r\n  for (c3_i152 = 0; c3_i152 < 10; c3_i152++) {\r\n    c3_y[c3_i152] = c3_bv2[c3_i152];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i153;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i153, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i153;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16])\r\n{\r\n  real_T c3_dv19[16];\r\n  int32_T c3_i154;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv19, 1, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i154 = 0; c3_i154 < 16; c3_i154++) {\r\n    c3_y[c3_i154] = c3_dv19[c3_i154];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[16];\r\n  int32_T c3_i155;\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i155 = 0;\r\n  for (c3_i156 = 0; c3_i156 < 4; c3_i156++) {\r\n    for (c3_i157 = 0; c3_i157 < 4; c3_i157++) {\r\n      (*(real_T (*)[16])c3_outData)[c3_i157 + c3_i155] = c3_y[c3_i157 + c3_i155];\r\n    }\r\n\r\n    c3_i155 += 4;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6])\r\n{\r\n  real_T c3_dv20[6];\r\n  int32_T c3_i158;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv20, 1, 0, 0U, 1, 0U, 2, 2, 3);\r\n  for (c3_i158 = 0; c3_i158 < 6; c3_i158++) {\r\n    c3_y[c3_i158] = c3_dv20[c3_i158];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[6];\r\n  int32_T c3_i159;\r\n  int32_T c3_i160;\r\n  int32_T c3_i161;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i159 = 0;\r\n  for (c3_i160 = 0; c3_i160 < 3; c3_i160++) {\r\n    for (c3_i161 = 0; c3_i161 < 2; c3_i161++) {\r\n      (*(real_T (*)[6])c3_outData)[c3_i161 + c3_i159] = c3_y[c3_i161 + c3_i159];\r\n    }\r\n\r\n    c3_i159 += 2;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv21[3];\r\n  int32_T c3_i162;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv21, 1, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i162 = 0; c3_i162 < 3; c3_i162++) {\r\n    c3_y[c3_i162] = c3_dv21[c3_i162];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i163;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  for (c3_i163 = 0; c3_i163 < 3; c3_i163++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i163] = c3_y[c3_i163];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60])\r\n{\r\n  real_T c3_dv22[60];\r\n  int32_T c3_i164;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 2, 20,\r\n                3);\r\n  for (c3_i164 = 0; c3_i164 < 60; c3_i164++) {\r\n    c3_y[c3_i164] = c3_dv22[c3_i164];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[60];\r\n  int32_T c3_i165;\r\n  int32_T c3_i166;\r\n  int32_T c3_i167;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i165 = 0;\r\n  for (c3_i166 = 0; c3_i166 < 3; c3_i166++) {\r\n    for (c3_i167 = 0; c3_i167 < 20; c3_i167++) {\r\n      (*(real_T (*)[60])c3_outData)[c3_i167 + c3_i165] = c3_y[c3_i167 + c3_i165];\r\n    }\r\n\r\n    c3_i165 += 20;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[63])\r\n{\r\n  real_T c3_dv23[63];\r\n  int32_T c3_i168;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 21,\r\n                3);\r\n  for (c3_i168 = 0; c3_i168 < 63; c3_i168++) {\r\n    c3_y[c3_i168] = c3_dv23[c3_i168];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[63];\r\n  int32_T c3_i169;\r\n  int32_T c3_i170;\r\n  int32_T c3_i171;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kv);\r\n  c3_i169 = 0;\r\n  for (c3_i170 = 0; c3_i170 < 3; c3_i170++) {\r\n    for (c3_i171 = 0; c3_i171 < 21; c3_i171++) {\r\n      (*(real_T (*)[63])c3_outData)[c3_i171 + c3_i169] = c3_y[c3_i171 + c3_i169];\r\n    }\r\n\r\n    c3_i169 += 21;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6])\r\n{\r\n  real_T c3_dv24[6];\r\n  int32_T c3_i172;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i172 = 0; c3_i172 < 6; c3_i172++) {\r\n    c3_y[c3_i172] = c3_dv24[c3_i172];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mlim;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[6];\r\n  int32_T c3_i173;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mlim = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mlim), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mlim);\r\n  for (c3_i173 = 0; c3_i173 < 6; c3_i173++) {\r\n    (*(real_T (*)[6])c3_outData)[c3_i173] = c3_y[c3_i173];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12])\r\n{\r\n  real_T c3_dv25[12];\r\n  int32_T c3_i174;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 6, 2);\r\n  for (c3_i174 = 0; c3_i174 < 12; c3_i174++) {\r\n    c3_y[c3_i174] = c3_dv25[c3_i174];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[12];\r\n  int32_T c3_i175;\r\n  int32_T c3_i176;\r\n  int32_T c3_i177;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  c3_i175 = 0;\r\n  for (c3_i176 = 0; c3_i176 < 2; c3_i176++) {\r\n    for (c3_i177 = 0; c3_i177 < 6; c3_i177++) {\r\n      (*(real_T (*)[12])c3_outData)[c3_i177 + c3_i175] = c3_y[c3_i177 + c3_i175];\r\n    }\r\n\r\n    c3_i175 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126])\r\n{\r\n  real_T c3_dv26[126];\r\n  int32_T c3_i178;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 6,\r\n                21);\r\n  for (c3_i178 = 0; c3_i178 < 126; c3_i178++) {\r\n    c3_y[c3_i178] = c3_dv26[c3_i178];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[126];\r\n  int32_T c3_i179;\r\n  int32_T c3_i180;\r\n  int32_T c3_i181;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mv);\r\n  c3_i179 = 0;\r\n  for (c3_i180 = 0; c3_i180 < 21; c3_i180++) {\r\n    for (c3_i181 = 0; c3_i181 < 6; c3_i181++) {\r\n      (*(real_T (*)[126])c3_outData)[c3_i181 + c3_i179] = c3_y[c3_i181 + c3_i179];\r\n    }\r\n\r\n    c3_i179 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4])\r\n{\r\n  real_T c3_dv27[4];\r\n  int32_T c3_i182;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i182 = 0; c3_i182 < 4; c3_i182++) {\r\n    c3_y[c3_i182] = c3_dv27[c3_i182];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[4];\r\n  int32_T c3_i183;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i183 = 0; c3_i183 < 4; c3_i183++) {\r\n    (*(real_T (*)[4])c3_outData)[c3_i183] = c3_y[c3_i183];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20])\r\n{\r\n  real_T c3_dv28[20];\r\n  int32_T c3_i184;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 1,\r\n                20);\r\n  for (c3_i184 = 0; c3_i184 < 20; c3_i184++) {\r\n    c3_y[c3_i184] = c3_dv28[c3_i184];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[20];\r\n  int32_T c3_i185;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i185 = 0; c3_i185 < 20; c3_i185++) {\r\n    (*(real_T (*)[20])c3_outData)[c3_i185] = c3_y[c3_i185];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[24])\r\n{\r\n  real_T c3_dv29[24];\r\n  int32_T c3_i186;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 2, 6, 4);\r\n  for (c3_i186 = 0; c3_i186 < 24; c3_i186++) {\r\n    c3_y[c3_i186] = c3_dv29[c3_i186];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ac;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[24];\r\n  int32_T c3_i187;\r\n  int32_T c3_i188;\r\n  int32_T c3_i189;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ac = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ac), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ac);\r\n  c3_i187 = 0;\r\n  for (c3_i188 = 0; c3_i188 < 4; c3_i188++) {\r\n    for (c3_i189 = 0; c3_i189 < 6; c3_i189++) {\r\n      (*(real_T (*)[24])c3_outData)[c3_i189 + c3_i187] = c3_y[c3_i189 + c3_i187];\r\n    }\r\n\r\n    c3_i187 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2008884449U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3349456191U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3383499532U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(154235383U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"uZDKFWLB82ra0oNDUcAsCG\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(21);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(21);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(21);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(2);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(20);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 21;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 2;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 20;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 20;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 21;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 21;\r\n          _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_old_u;\r\n          real_T *c3_umin;\r\n          real_T *c3_umax;\r\n          real_T *c3_ymin;\r\n          real_T *c3_ymax;\r\n          real_T *c3_switch_in;\r\n          real_T *c3_ywt;\r\n          real_T *c3_duwt;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_u;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[20];\r\n          real_T (*c3_vseq)[21];\r\n          real_T (*c3_x)[2];\r\n          boolean_T (*c3_iA)[10];\r\n          real_T (*c3_useq)[20];\r\n          boolean_T (*c3_iAout)[10];\r\n          c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S,\r\n            5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[10])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[21])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, &chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, &chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"T7oeNP5jU5Ide0wJqxRvND\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(3697607324U));\r\n  ssSetChecksum1(S,(3163451633U));\r\n  ssSetChecksum2(S,(3010755970U));\r\n  ssSetChecksum3(S,(753621111U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[16];\r\n  real_T c3_Kx[6];\r\n  real_T c3_Ku1[3];\r\n  real_T c3_Kut[60];\r\n  real_T c3_Kr[60];\r\n  real_T c3_Kv[63];\r\n  real_T c3_Mlim[6];\r\n  real_T c3_Mx[12];\r\n  real_T c3_Mu1[6];\r\n  real_T c3_Mv[126];\r\n  real_T c3_z_degrees[4];\r\n  real_T c3_utarget[20];\r\n  real_T c3_p;\r\n  real_T c3_uoff;\r\n  real_T c3_yoff;\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[16];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[20];\r\n  real_T c3_Linv[16];\r\n  real_T c3_Ac[24];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (20.0)\r\n#define c4_b_ny                        (1.0)\r\n#define c4_b_nv                        (1.0)\r\n#define c4_b_yoff                      (0.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (1.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[20]);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[20]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[21]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[21]);\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier);\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  real_T c4_d7;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_yoff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d7 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i0;\r\n  real_T c4_u[20];\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_c_u[21];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_b_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T *c4_v;\r\n  real_T (*c4_vseq)[21];\r\n  real_T (*c4_rseq)[20];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i0 = 0; c4_i0 < 20; c4_i0++) {\r\n    c4_u[c4_i0] = (*c4_rseq)[c4_i0];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  c4_hoistedGlobal = *c4_v;\r\n  c4_b_u = c4_hoistedGlobal;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i1 = 0; c4_i1 < 21; c4_i1++) {\r\n    c4_c_u[c4_i1] = (*c4_vseq)[c4_i1];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_b_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_b_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv0[20];\r\n  int32_T c4_i2;\r\n  real_T c4_dv1[21];\r\n  int32_T c4_i3;\r\n  real_T *c4_v;\r\n  real_T (*c4_rseq)[20];\r\n  real_T (*c4_vseq)[21];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)), \"rseq\",\r\n                      c4_dv0);\r\n  for (c4_i2 = 0; c4_i2 < 20; c4_i2++) {\r\n    (*c4_rseq)[c4_i2] = c4_dv0[c4_i2];\r\n  }\r\n\r\n  *c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)),\r\n    \"v\");\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv1);\r\n  for (c4_i3 = 0; c4_i3 < 21; c4_i3++) {\r\n    (*c4_vseq)[c4_i3] = c4_dv1[c4_i3];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_i_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i4;\r\n  int32_T c4_i5;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_hoistedGlobal;\r\n  real_T c4_ref;\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff;\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[20];\r\n  real_T c4_vseq[21];\r\n  real_T c4_v;\r\n  int32_T c4_i6;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T c4_f_u;\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv2[20];\r\n  int32_T c4_i9;\r\n  real_T c4_dv3[21];\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  int32_T c4_i12;\r\n  real_T *c4_b_ref;\r\n  real_T *c4_b_md;\r\n  real_T *c4_c_v;\r\n  real_T (*c4_c_rseq)[20];\r\n  real_T (*c4_c_vseq)[21];\r\n  c4_c_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i4 = 0; c4_i4 < 20; c4_i4++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i4], 0U);\r\n  }\r\n\r\n  for (c4_i5 = 0; c4_i5 < 21; c4_i5++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i5], 1U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_ref, 2U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_c_v, 4U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff, 8U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_ref;\r\n  c4_b_hoistedGlobal = *c4_b_md;\r\n  c4_ref = c4_hoistedGlobal;\r\n  c4_md = c4_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_yoff, 4U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_ref, 11U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  c4_c_yoff = c4_b_yoff;\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i6 = 0; c4_i6 < 6; c4_i6++) {\r\n    c4_DataType[c4_i6] = c4_cv0[c4_i6];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i7 = 0; c4_i7 < 20; c4_i7++) {\r\n    c4_rseq[c4_i7] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i8 = 0; c4_i8 < 21; c4_i8++) {\r\n    c4_vseq[c4_i8] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  c4_v = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  c4_u = c4_ref;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_f_u = c4_b_yoff;\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", &c4_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv2);\r\n  for (c4_i9 = 0; c4_i9 < 20; c4_i9++) {\r\n    c4_rseq[c4_i9] = c4_dv2[c4_i9];\r\n  }\r\n\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv3);\r\n  for (c4_i10 = 0; c4_i10 < 21; c4_i10++) {\r\n    c4_vseq[c4_i10] = c4_dv3[c4_i10];\r\n  }\r\n\r\n  c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\");\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i11 = 0; c4_i11 < 20; c4_i11++) {\r\n    (*c4_c_rseq)[c4_i11] = c4_rseq[c4_i11];\r\n  }\r\n\r\n  for (c4_i12 = 0; c4_i12 < 21; c4_i12++) {\r\n    (*c4_c_vseq)[c4_i12] = c4_vseq[c4_i12];\r\n  }\r\n\r\n  *c4_c_v = c4_v;\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i13;\r\n  real_T c4_b_inData[21];\r\n  int32_T c4_i14;\r\n  real_T c4_u[21];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i13 = 0; c4_i13 < 21; c4_i13++) {\r\n    c4_b_inData[c4_i13] = (*(real_T (*)[21])c4_inData)[c4_i13];\r\n  }\r\n\r\n  for (c4_i14 = 0; c4_i14 < 21; c4_i14++) {\r\n    c4_u[c4_i14] = c4_b_inData[c4_i14];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[21];\r\n  int32_T c4_i15;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i15 = 0; c4_i15 < 21; c4_i15++) {\r\n    (*(real_T (*)[21])c4_outData)[c4_i15] = c4_y[c4_i15];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i16;\r\n  real_T c4_b_inData[20];\r\n  int32_T c4_i17;\r\n  real_T c4_u[20];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i16 = 0; c4_i16 < 20; c4_i16++) {\r\n    c4_b_inData[c4_i16] = (*(real_T (*)[20])c4_inData)[c4_i16];\r\n  }\r\n\r\n  for (c4_i17 = 0; c4_i17 < 20; c4_i17++) {\r\n    c4_u[c4_i17] = c4_b_inData[c4_i17];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[20];\r\n  int32_T c4_i18;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i18 = 0; c4_i18 < 20; c4_i18++) {\r\n    (*(real_T (*)[20])c4_outData)[c4_i18] = c4_y[c4_i18];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i19;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i20;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i19 = 0; c4_i19 < 6; c4_i19++) {\r\n    c4_b_inData[c4_i19] = (*(char_T (*)[6])c4_inData)[c4_i19];\r\n  }\r\n\r\n  for (c4_i20 = 0; c4_i20 < 6; c4_i20++) {\r\n    c4_u[c4_i20] = c4_b_inData[c4_i20];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[20])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[20])\r\n{\r\n  real_T c4_dv4[20];\r\n  int32_T c4_i21;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv4, 1, 0, 0U, 1, 0U, 1, 20);\r\n  for (c4_i21 = 0; c4_i21 < 20; c4_i21++) {\r\n    c4_y[c4_i21] = c4_dv4[c4_i21];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[21])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[21])\r\n{\r\n  real_T c4_dv5[21];\r\n  int32_T c4_i22;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv5, 1, 0, 0U, 1, 0U, 1, 21);\r\n  for (c4_i22 = 0; c4_i22 < 21; c4_i22++) {\r\n    c4_y[c4_i22] = c4_dv5[c4_i22];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier)\r\n{\r\n  real_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  return c4_y;\r\n}\r\n\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d8;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d8, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d8;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i23;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i23, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i23;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_j_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3270233154U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1563808691U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(718734131U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(371247434U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"2HNWbd5KcYTrI0VNgAqzxF\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(21);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 21;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_e_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_ref;\r\n          real_T *c4_md;\r\n          real_T *c4_v;\r\n          real_T (*c4_rseq)[20];\r\n          real_T (*c4_vseq)[21];\r\n          c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, &chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"3RFiiaQWqqM0bZLXITcoK\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(3664384646U));\r\n  ssSetChecksum1(S,(3453141569U));\r\n  ssSetChecksum2(S,(3009631007U));\r\n  ssSetChecksum3(S,(1767285725U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff;\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3549040148U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(67502094U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(728751800U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(456768330U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"uZDKFWLB82ra0oNDUcAsCG\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"2HNWbd5KcYTrI0VNgAqzxF\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"T7oeNP5jU5Ide0wJqxRvND\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"3RFiiaQWqqM0bZLXITcoK\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"T7oeNP5jU5Ide0wJqxRvND\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"3RFiiaQWqqM0bZLXITcoK\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_doubleint\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_doubleint_for_speedctrl_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_doubleint_for_speedctrl_sfun.h\"\r\n#include \"mpc_doubleint_for_speedctrl_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_doubleint_for_speedctrlMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_doubleint_for_speedctrl_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_doubleint_for_speedctrl_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_doubleint_for_speedctrl_method_dispatcher(SimStruct\r\n  *simstructPtr, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_for_speedctrl_process_check_sum_call( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(4223205232U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2998453430U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(4235227007U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1394788929U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1299703318U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2205269942U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2275987658U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2561835547U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1698189916U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3638029164U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(226784526U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2701917911U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_for_speedctrl_autoinheritance_info( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_for_speedctrl_get_eml_resolved_functions_info( int\r\n  nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_for_speedctrl_third_party_uses_info( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_doubleint_for_speedctrl_updateBuildInfo_args_info( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_doubleint_for_speedctrl_debug_initialize(struct SfDebugInstanceStruct*\r\n  debugInstance)\r\n{\r\n  _mpc_doubleint_for_speedctrlMachineNumber_ = sf_debug_initialize_machine\r\n    (debugInstance,\"mpc_doubleint_for_speedctrl\",\"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,\r\n    _mpc_doubleint_for_speedctrlMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,\r\n    _mpc_doubleint_for_speedctrlMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_doubleint_for_speedctrl_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_doubleint_for_speedctrl_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\r\n      \"mpc_doubleint_for_speedctrl\", \"mpc_doubleint_for_speedctrl\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_doubleint_for_speedctrl_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun.h",
    "content": "#ifndef __mpc_doubleint_for_speedctrl_sfun_h__\r\n#define __mpc_doubleint_for_speedctrl_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_doubleint_for_speedctrlMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_doubleint_for_speedctrl_initializer(void);\r\nextern void mpc_doubleint_for_speedctrl_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_doubleint_for_speedctrl_optimization_info(void);\r\nextern void unload_mpc_doubleint_for_speedctrl_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_doubleint_for_speedctrl\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_doubleint_for_speedctrl_sfun.c\r\nMACHINE_REG = mpc_doubleint_for_speedctrl_sfun_registry.c\r\nMAKEFILE    = mpc_doubleint_for_speedctrl_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_doubleint_for_speedctrl_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_doubleint_for_speedctrl\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun.mol",
    "content": "mpc_doubleint_for_speedctrl_sfun.obj\r\nmpc_doubleint_for_speedctrl_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_doubleint_for_speedctrlMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_doubleint_for_speedctrlMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/mpc_doubleint_for_speedctrl_sfun_registry.c",
    "content": "#include \"mpc_doubleint_for_speedctrl_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_for_speedctrl_process_check_sum_call( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_doubleint_for_speedctrl_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_for_speedctrl_autoinheritance_info( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint_for_speedctrl\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_doubleint_for_speedctrl_autoinheritance_info(nlhs,plhs,3,\r\n      newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_for_speedctrl_third_party_uses_info( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint_for_speedctrl\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_doubleint_for_speedctrl_third_party_uses_info(nlhs,plhs,3,\r\n      newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_doubleint_for_speedctrl_updateBuildInfo_args_info\r\n    ( int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint_for_speedctrl\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_doubleint_for_speedctrl_updateBuildInfo_args_info(nlhs,plhs,3,\r\n      newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int\r\n    sf_mpc_doubleint_for_speedctrl_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_doubleint_for_speedctrl\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_doubleint_for_speedctrl_get_eml_resolved_functions_info(nlhs,\r\n      plhs,2,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_doubleint_for_speedctrl_method_dispatcher(SimStruct\r\n  *S, unsigned int chartFileNumber, const char* specsCksum, int_T method, void\r\n  *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_doubleint_for_speedctrl\")) {\r\n    return(sf_mpc_doubleint_for_speedctrl_method_dispatcher(simstructPtr,\r\n            chartFileNumber,specsCksum,method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_doubleint_for_speedctrl_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_doubleint_for_speedctrl_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_doubleint_for_speedctrl_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_doubleint_for_speedctrl_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_doubleint_for_speedctrl_debug_initialize(struct\r\n  SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_doubleint_for_speedctrl_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_doubleint_for_speedctrl_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_doubleint_for_speedctrl_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (20.0)\r\n#define c3_b_nu                        (1.0)\r\n#define c3_b_isQP                      (TRUE)\r\n#define c3_b_ny                        (1.0)\r\n#define c3_b_degrees                   (4.0)\r\n#define c3_b_uoff                      (0.0)\r\n#define c3_b_yoff                      (0.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (2.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier);\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[20]);\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20]);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[10]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[10]);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16]);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[63]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[24]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[16];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[6];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[3];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[60];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[60];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[63];\r\n  int32_T c3_i5;\r\n  real_T c3_dv6[6];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[12];\r\n  int32_T c3_i7;\r\n  real_T c3_dv8[6];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[126];\r\n  int32_T c3_i9;\r\n  real_T c3_dv10[4];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[20];\r\n  int32_T c3_i11;\r\n  real_T c3_d4;\r\n  real_T c3_d5;\r\n  real_T c3_d6;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_d17;\r\n  real_T c3_d18;\r\n  real_T c3_dv12[16];\r\n  int32_T c3_i12;\r\n  real_T c3_d19;\r\n  real_T c3_dv13[20];\r\n  int32_T c3_i13;\r\n  real_T c3_dv14[16];\r\n  int32_T c3_i14;\r\n  real_T c3_dv15[24];\r\n  int32_T c3_i15;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  real_T c3_d32;\r\n  real_T c3_d33;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i0 = 0; c3_i0 < 16; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 2, 3);\r\n  for (c3_i1 = 0; c3_i1 < 6; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i2 = 0; c3_i2 < 3; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 20, 3);\r\n  for (c3_i3 = 0; c3_i3 < 60; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 20, 3);\r\n  for (c3_i4 = 0; c3_i4 < 60; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 21, 3);\r\n  for (c3_i5 = 0; c3_i5 < 63; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i6 = 0; c3_i6 < 6; c3_i6++) {\r\n    chartInstance->c3_Mlim[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 6, 2);\r\n  for (c3_i7 = 0; c3_i7 < 12; c3_i7++) {\r\n    chartInstance->c3_Mx[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i8 = 0; c3_i8 < 6; c3_i8++) {\r\n    chartInstance->c3_Mu1[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 2, 6, 21);\r\n  for (c3_i9 = 0; c3_i9 < 126; c3_i9++) {\r\n    chartInstance->c3_Mv[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i10 = 0; c3_i10 < 4; c3_i10++) {\r\n    chartInstance->c3_z_degrees[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 20);\r\n  for (c3_i11 = 0; c3_i11 < 20; c3_i11++) {\r\n    chartInstance->c3_utarget[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_uoff = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_yoff = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d7;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d9 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i12 = 0; c3_i12 < 16; c3_i12++) {\r\n    chartInstance->c3_H[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv13, 0, 0, 0U, 1, 0U, 2, 1, 20);\r\n  for (c3_i13 = 0; c3_i13 < 20; c3_i13++) {\r\n    chartInstance->c3_blocking_moves[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i14 = 0; c3_i14 < 16; c3_i14++) {\r\n    chartInstance->c3_Linv[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv15, 0, 0, 0U, 1, 0U, 2, 6, 4);\r\n  for (c3_i15 = 0; c3_i15 < 24; c3_i15++) {\r\n    chartInstance->c3_Ac[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d32, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d32;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d33, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d33;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i16;\r\n  boolean_T c3_b_u[10];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i17;\r\n  real_T c3_e_u[20];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_d_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_g_u;\r\n  real_T (*c3_useq)[20];\r\n  boolean_T (*c3_iAout)[10];\r\n  c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i16 = 0; c3_i16 < 10; c3_i16++) {\r\n    c3_b_u[c3_i16] = (*c3_iAout)[c3_i16];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 10),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  c3_c_hoistedGlobal = *c3_g_u;\r\n  c3_d_u = c3_c_hoistedGlobal;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i17 = 0; c3_i17 < 20; c3_i17++) {\r\n    c3_e_u[c3_i17] = (*c3_useq)[c3_i17];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_d_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_d_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[10];\r\n  int32_T c3_i18;\r\n  real_T c3_dv16[20];\r\n  int32_T c3_i19;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_b_u;\r\n  boolean_T (*c3_iAout)[10];\r\n  real_T (*c3_useq)[20];\r\n  c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i18 = 0; c3_i18 < 10; c3_i18++) {\r\n    (*c3_iAout)[c3_i18] = c3_bv0[c3_i18];\r\n  }\r\n\r\n  *c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    2)), \"status\");\r\n  *c3_b_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)),\r\n    \"u\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv16);\r\n  for (c3_i19 = 0; c3_i19 < 20; c3_i19++) {\r\n    (*c3_useq)[c3_i19] = c3_dv16[c3_i19];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_t_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i20;\r\n  int32_T c3_i21;\r\n  int32_T c3_i22;\r\n  int32_T c3_i23;\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  real_T *c3_old_u;\r\n  real_T *c3_umin;\r\n  real_T *c3_umax;\r\n  real_T *c3_ymin;\r\n  real_T *c3_ymax;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_ywt;\r\n  real_T *c3_duwt;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_u;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[10];\r\n  real_T (*c3_useq)[20];\r\n  boolean_T (*c3_iA)[10];\r\n  real_T (*c3_x)[2];\r\n  real_T (*c3_vseq)[21];\r\n  real_T (*c3_rseq)[20];\r\n  c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[10])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[21])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i20 = 0; c3_i20 < 20; c3_i20++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i20], 0U);\r\n  }\r\n\r\n  for (c3_i21 = 0; c3_i21 < 21; c3_i21++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i21], 1U);\r\n  }\r\n\r\n  for (c3_i22 = 0; c3_i22 < 2; c3_i22++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i22], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_old_u, 3U);\r\n  for (c3_i23 = 0; c3_i23 < 10; c3_i23++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i23], 4U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_umin, 5U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_umax, 6U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymin, 7U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymax, 8U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ywt, 10U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_duwt, 11U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_u, 13U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i24 = 0; c3_i24 < 20; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i24], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i25 = 0; c3_i25 < 16; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i25], 21U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 6; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i26], 22U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i27], 23U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 60; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i28], 24U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 60; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i29], 25U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 63; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i30], 26U);\r\n  }\r\n\r\n  for (c3_i31 = 0; c3_i31 < 6; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim[c3_i31], 27U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 12; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i32], 28U);\r\n  }\r\n\r\n  for (c3_i33 = 0; c3_i33 < 6; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i33], 29U);\r\n  }\r\n\r\n  for (c3_i34 = 0; c3_i34 < 126; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv[c3_i34], 30U);\r\n  }\r\n\r\n  for (c3_i35 = 0; c3_i35 < 4; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i35], 31U);\r\n  }\r\n\r\n  for (c3_i36 = 0; c3_i36 < 20; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i36], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff, 34U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff, 35U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i37 = 0; c3_i37 < 16; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i37], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i38 = 0; c3_i38 < 20; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i38], 50U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 16; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i39], 51U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 24; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i40], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i41 = 0; c3_i41 < 10; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i41], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_hoistedGlobal;\r\n  real_T c3_e_hoistedGlobal;\r\n  real_T c3_f_hoistedGlobal;\r\n  real_T c3_g_hoistedGlobal;\r\n  real_T c3_h_hoistedGlobal;\r\n  real_T c3_i_hoistedGlobal;\r\n  int32_T c3_i42;\r\n  real_T c3_rseq[20];\r\n  int32_T c3_i43;\r\n  real_T c3_vseq[21];\r\n  int32_T c3_i44;\r\n  real_T c3_x[2];\r\n  real_T c3_old_u;\r\n  int32_T c3_i45;\r\n  boolean_T c3_iA[10];\r\n  real_T c3_umin;\r\n  real_T c3_umax;\r\n  real_T c3_ymin;\r\n  real_T c3_ymax;\r\n  real_T c3_switch_in;\r\n  real_T c3_ywt;\r\n  real_T c3_duwt;\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[16];\r\n  real_T c3_c_Kx[6];\r\n  real_T c3_c_Ku1[3];\r\n  real_T c3_c_Kut[60];\r\n  real_T c3_c_Kr[60];\r\n  real_T c3_c_Kv[63];\r\n  real_T c3_c_Mlim[6];\r\n  real_T c3_c_Mx[12];\r\n  real_T c3_c_Mu1[6];\r\n  real_T c3_c_Mv[126];\r\n  real_T c3_c_z_degrees[4];\r\n  real_T c3_c_utarget[20];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff;\r\n  real_T c3_c_yoff;\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[16];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[20];\r\n  real_T c3_c_Linv[16];\r\n  real_T c3_c_Ac[24];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u;\r\n  real_T c3_cost;\r\n  real_T c3_useq[20];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[10];\r\n  int32_T c3_i46;\r\n  static real_T c3_d_Ac[24] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -0.0, -1.0,\r\n    -1.0, -0.0, 1.0, 1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0 };\r\n\r\n  int32_T c3_i47;\r\n  static real_T c3_d_Linv[16] = { 0.23520200811439571, -4.8978830782919456,\r\n    0.73799858039642308, 0.0, 0.0, 5.5567121987275856, -5.9375612767978332, 0.0,\r\n    0.0, 0.0, 5.8281111841008046, 0.0, 0.0, 0.0, 0.0, 0.003162277660168379 };\r\n\r\n  int32_T c3_i48;\r\n  static real_T c3_d_blocking_moves[20] = { 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i49;\r\n  static real_T c3_d_H[16] = { 18.076650000000004, 15.9334, 13.943625000000003,\r\n    0.0, 15.9334, 14.07665, 12.323400000000001, 0.0, 13.943625000000003,\r\n    12.323400000000001, 10.818625000000003, 0.0, 0.0, 0.0, 0.0, 100000.0 };\r\n\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  int32_T c3_i52;\r\n  int32_T c3_i53;\r\n  static real_T c3_d_Mu1[6] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0 };\r\n\r\n  int32_T c3_i54;\r\n  int32_T c3_i55;\r\n  int32_T c3_i56;\r\n  int32_T c3_i57;\r\n  static real_T c3_d_Kr[60] = { -0.005000000000000001, -0.020000000000000004,\r\n    -0.045000000000000012, -0.080000000000000016, -0.12500000000000003,\r\n    -0.18000000000000005, -0.24500000000000005, -0.32000000000000006,\r\n    -0.40500000000000008, -0.50000000000000011, -0.60500000000000009,\r\n    -0.72000000000000008, -0.84500000000000008, -0.98000000000000009, -1.125,\r\n    -1.28, -1.445, -1.62, -1.8050000000000002, -2.0, -0.0, -0.005000000000000001,\r\n    -0.020000000000000004, -0.045000000000000012, -0.080000000000000016,\r\n    -0.12500000000000003, -0.18000000000000005, -0.24500000000000005,\r\n    -0.32000000000000006, -0.40500000000000008, -0.50000000000000011,\r\n    -0.60500000000000009, -0.72000000000000008, -0.84500000000000008,\r\n    -0.98000000000000009, -1.125, -1.28, -1.445, -1.62, -1.8050000000000002,\r\n    -0.0, -0.0, -0.005000000000000001, -0.020000000000000004,\r\n    -0.045000000000000012, -0.080000000000000016, -0.12500000000000003,\r\n    -0.18000000000000005, -0.24500000000000005, -0.32000000000000006,\r\n    -0.40500000000000008, -0.50000000000000011, -0.60500000000000009,\r\n    -0.72000000000000008, -0.84500000000000008, -0.98000000000000009, -1.125,\r\n    -1.28, -1.445, -1.62 };\r\n\r\n  int32_T c3_i58;\r\n  int32_T c3_i59;\r\n  static real_T c3_d_Ku1[3] = { 18.066650000000003, 15.933400000000002,\r\n    13.943625 };\r\n\r\n  int32_T c3_i60;\r\n  static real_T c3_d_Kx[6] = { 14.350000000000001, 22.050000000000004,\r\n    12.350000000000001, 19.285000000000004, 10.545000000000002,\r\n    16.729500000000005 };\r\n\r\n  int32_T c3_i61;\r\n  static real_T c3_d_Hinv[16] = { 24.589220537906762, -31.598038442379849,\r\n    4.3011377802589106, 0.0, -31.598038442379849, 66.131684375217077,\r\n    -34.604767283589304, 0.0, 4.3011377802589106, -34.604767283589304,\r\n    33.966879974240882, 0.0, 0.0, 0.0, 0.0, 9.9999999999999974E-6 };\r\n\r\n  int32_T c3_i62;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i63;\r\n  int32_T c3_i64;\r\n  int32_T c3_i65;\r\n  real_T c3_b_u[20];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i66;\r\n  real_T c3_c_u[21];\r\n  const mxArray *c3_b_y = NULL;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_e_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_f_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  real_T c3_g_u;\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i67;\r\n  real_T c3_i_u[2];\r\n  const mxArray *c3_h_y = NULL;\r\n  real_T c3_j_u;\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i68;\r\n  boolean_T c3_k_u[10];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i69;\r\n  real_T c3_p_u[16];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i70;\r\n  real_T c3_q_u[6];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i71;\r\n  real_T c3_r_u[3];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i72;\r\n  real_T c3_s_u[60];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i73;\r\n  real_T c3_t_u[60];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i74;\r\n  real_T c3_u_u[63];\r\n  const mxArray *c3_t_y = NULL;\r\n  int32_T c3_i75;\r\n  real_T c3_v_u[6];\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i76;\r\n  real_T c3_w_u[12];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i77;\r\n  real_T c3_x_u[6];\r\n  const mxArray *c3_w_y = NULL;\r\n  int32_T c3_i78;\r\n  real_T c3_y_u[126];\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i79;\r\n  real_T c3_ab_u[4];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i80;\r\n  real_T c3_bb_u[20];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  real_T c3_db_u;\r\n  const mxArray *c3_cb_y = NULL;\r\n  real_T c3_eb_u;\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i81;\r\n  real_T c3_rb_u[16];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i82;\r\n  real_T c3_tb_u[20];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i83;\r\n  real_T c3_ub_u[16];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i84;\r\n  real_T c3_vb_u[24];\r\n  const mxArray *c3_ub_y = NULL;\r\n  real_T c3_wb_u;\r\n  const mxArray *c3_vb_y = NULL;\r\n  real_T c3_xb_u;\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv17[20];\r\n  int32_T c3_i85;\r\n  boolean_T c3_bv1[10];\r\n  int32_T c3_i86;\r\n  int32_T c3_i87;\r\n  int32_T c3_i88;\r\n  real_T *c3_b_old_u;\r\n  real_T *c3_b_umin;\r\n  real_T *c3_b_umax;\r\n  real_T *c3_b_ymin;\r\n  real_T *c3_b_ymax;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_ywt;\r\n  real_T *c3_b_duwt;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_pc_u;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_c_useq)[20];\r\n  boolean_T (*c3_c_iAout)[10];\r\n  boolean_T (*c3_b_iA)[10];\r\n  real_T (*c3_b_x)[2];\r\n  real_T (*c3_b_vseq)[21];\r\n  real_T (*c3_b_rseq)[20];\r\n  c3_c_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[10])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[21])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_old_u;\r\n  c3_b_hoistedGlobal = *c3_b_umin;\r\n  c3_c_hoistedGlobal = *c3_b_umax;\r\n  c3_d_hoistedGlobal = *c3_b_ymin;\r\n  c3_e_hoistedGlobal = *c3_b_ymax;\r\n  c3_f_hoistedGlobal = *c3_b_switch_in;\r\n  c3_g_hoistedGlobal = *c3_b_ywt;\r\n  c3_h_hoistedGlobal = *c3_b_duwt;\r\n  c3_i_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i42 = 0; c3_i42 < 20; c3_i42++) {\r\n    c3_rseq[c3_i42] = (*c3_b_rseq)[c3_i42];\r\n  }\r\n\r\n  for (c3_i43 = 0; c3_i43 < 21; c3_i43++) {\r\n    c3_vseq[c3_i43] = (*c3_b_vseq)[c3_i43];\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 2; c3_i44++) {\r\n    c3_x[c3_i44] = (*c3_b_x)[c3_i44];\r\n  }\r\n\r\n  c3_old_u = c3_hoistedGlobal;\r\n  for (c3_i45 = 0; c3_i45 < 10; c3_i45++) {\r\n    c3_iA[c3_i45] = (*c3_b_iA)[c3_i45];\r\n  }\r\n\r\n  c3_umin = c3_b_hoistedGlobal;\r\n  c3_umax = c3_c_hoistedGlobal;\r\n  c3_ymin = c3_d_hoistedGlobal;\r\n  c3_ymax = c3_e_hoistedGlobal;\r\n  c3_switch_in = c3_f_hoistedGlobal;\r\n  c3_ywt = c3_g_hoistedGlobal;\r\n  c3_duwt = c3_h_hoistedGlobal;\r\n  c3_rhoeps = c3_i_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mlim, 11U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mv, 14U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_uoff, 18U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_yoff, 19U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_old_u, 56U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umin, 58U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umax, 59U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymin, 60U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymax, 61U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ywt, 63U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_duwt, 64U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_u, 66U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i46 = 0; c3_i46 < 24; c3_i46++) {\r\n    c3_c_Ac[c3_i46] = c3_d_Ac[c3_i46];\r\n  }\r\n\r\n  for (c3_i47 = 0; c3_i47 < 16; c3_i47++) {\r\n    c3_c_Linv[c3_i47] = c3_d_Linv[c3_i47];\r\n  }\r\n\r\n  for (c3_i48 = 0; c3_i48 < 20; c3_i48++) {\r\n    c3_c_blocking_moves[c3_i48] = c3_d_blocking_moves[c3_i48];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i49 = 0; c3_i49 < 16; c3_i49++) {\r\n    c3_c_H[c3_i49] = c3_d_H[c3_i49];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  c3_c_yoff = c3_b_yoff;\r\n  c3_c_uoff = c3_b_uoff;\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i50 = 0; c3_i50 < 20; c3_i50++) {\r\n    c3_c_utarget[c3_i50] = 0.0;\r\n  }\r\n\r\n  for (c3_i51 = 0; c3_i51 < 4; c3_i51++) {\r\n    c3_c_z_degrees[c3_i51] = 0.0;\r\n  }\r\n\r\n  for (c3_i52 = 0; c3_i52 < 126; c3_i52++) {\r\n    c3_c_Mv[c3_i52] = 0.0;\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 6; c3_i53++) {\r\n    c3_c_Mu1[c3_i53] = c3_d_Mu1[c3_i53];\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 12; c3_i54++) {\r\n    c3_c_Mx[c3_i54] = 0.0;\r\n  }\r\n\r\n  for (c3_i55 = 0; c3_i55 < 6; c3_i55++) {\r\n    c3_c_Mlim[c3_i55] = 1.0;\r\n  }\r\n\r\n  for (c3_i56 = 0; c3_i56 < 63; c3_i56++) {\r\n    c3_c_Kv[c3_i56] = 0.0;\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 60; c3_i57++) {\r\n    c3_c_Kr[c3_i57] = c3_d_Kr[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 60; c3_i58++) {\r\n    c3_c_Kut[c3_i58] = 0.0;\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 3; c3_i59++) {\r\n    c3_c_Ku1[c3_i59] = c3_d_Ku1[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 6; c3_i60++) {\r\n    c3_c_Kx[c3_i60] = c3_d_Kx[c3_i60];\r\n  }\r\n\r\n  for (c3_i61 = 0; c3_i61 < 16; c3_i61++) {\r\n    c3_c_Hinv[c3_i61] = c3_d_Hinv[c3_i61];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i62 = 0; c3_i62 < 6; c3_i62++) {\r\n    c3_DataType[c3_i62] = c3_cv0[c3_i62];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  c3_u = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i63 = 0; c3_i63 < 20; c3_i63++) {\r\n    c3_useq[c3_i63] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i64 = 0; c3_i64 < 10; c3_i64++) {\r\n    c3_iAout[c3_i64] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i65 = 0; c3_i65 < 20; c3_i65++) {\r\n    c3_b_u[c3_i65] = c3_rseq[c3_i65];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  for (c3_i66 = 0; c3_i66 < 21; c3_i66++) {\r\n    c3_c_u[c3_i66] = c3_vseq[c3_i66];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  c3_d_u = c3_umin;\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_e_u = c3_umax;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_f_u = c3_ymin;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_g_u = c3_ymax;\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", &c3_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i67 = 0; c3_i67 < 2; c3_i67++) {\r\n    c3_i_u[c3_i67] = c3_x[c3_i67];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c3_j_u = c3_old_u;\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", &c3_j_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i68 = 0; c3_i68 < 10; c3_i68++) {\r\n    c3_k_u[c3_i68] = c3_iA[c3_i68];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 10),\r\n                FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i69 = 0; c3_i69 < 16; c3_i69++) {\r\n    c3_p_u[c3_i69] = c3_d_Hinv[c3_i69];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i70 = 0; c3_i70 < 6; c3_i70++) {\r\n    c3_q_u[c3_i70] = c3_d_Kx[c3_i70];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 2, 3),\r\n                FALSE);\r\n  for (c3_i71 = 0; c3_i71 < 3; c3_i71++) {\r\n    c3_r_u[c3_i71] = c3_d_Ku1[c3_i71];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 1, 3),\r\n                FALSE);\r\n  for (c3_i72 = 0; c3_i72 < 60; c3_i72++) {\r\n    c3_s_u[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 20, 3),\r\n                FALSE);\r\n  for (c3_i73 = 0; c3_i73 < 60; c3_i73++) {\r\n    c3_t_u[c3_i73] = c3_d_Kr[c3_i73];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 20, 3),\r\n                FALSE);\r\n  for (c3_i74 = 0; c3_i74 < 63; c3_i74++) {\r\n    c3_u_u[c3_i74] = 0.0;\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 21, 3),\r\n                FALSE);\r\n  for (c3_i75 = 0; c3_i75 < 6; c3_i75++) {\r\n    c3_v_u[c3_i75] = 1.0;\r\n  }\r\n\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", c3_v_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i76 = 0; c3_i76 < 12; c3_i76++) {\r\n    c3_w_u[c3_i76] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 6, 2),\r\n                FALSE);\r\n  for (c3_i77 = 0; c3_i77 < 6; c3_i77++) {\r\n    c3_x_u[c3_i77] = c3_d_Mu1[c3_i77];\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i78 = 0; c3_i78 < 126; c3_i78++) {\r\n    c3_y_u[c3_i78] = 0.0;\r\n  }\r\n\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", c3_y_u, 0, 0U, 1U, 0U, 2, 6, 21),\r\n                FALSE);\r\n  for (c3_i79 = 0; c3_i79 < 4; c3_i79++) {\r\n    c3_ab_u[c3_i79] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  for (c3_i80 = 0; c3_i80 < 20; c3_i80++) {\r\n    c3_bb_u[c3_i80] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 20),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_db_u = c3_b_uoff;\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", &c3_db_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_eb_u = c3_b_yoff;\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", &c3_eb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i81 = 0; c3_i81 < 16; c3_i81++) {\r\n    c3_rb_u[c3_i81] = c3_d_H[c3_i81];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i82 = 0; c3_i82 < 20; c3_i82++) {\r\n    c3_tb_u[c3_i82] = c3_d_blocking_moves[c3_i82];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 20),\r\n                FALSE);\r\n  for (c3_i83 = 0; c3_i83 < 16; c3_i83++) {\r\n    c3_ub_u[c3_i83] = c3_d_Linv[c3_i83];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i84 = 0; c3_i84 < 24; c3_i84++) {\r\n    c3_vb_u[c3_i84] = c3_d_Ac[c3_i84];\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 6, 4),\r\n                FALSE);\r\n  c3_wb_u = c3_ywt;\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", &c3_wb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_xb_u = c3_duwt;\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", &c3_xb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\");\r\n  c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv17);\r\n  for (c3_i85 = 0; c3_i85 < 20; c3_i85++) {\r\n    c3_useq[c3_i85] = c3_dv17[c3_i85];\r\n  }\r\n\r\n  c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i86 = 0; c3_i86 < 10; c3_i86++) {\r\n    c3_iAout[c3_i86] = c3_bv1[c3_i86];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  *c3_pc_u = c3_u;\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i87 = 0; c3_i87 < 20; c3_i87++) {\r\n    (*c3_c_useq)[c3_i87] = c3_useq[c3_i87];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i88 = 0; c3_i88 < 10; c3_i88++) {\r\n    (*c3_c_iAout)[c3_i88] = c3_iAout[c3_i88];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i89;\r\n  boolean_T c3_b_inData[10];\r\n  int32_T c3_i90;\r\n  boolean_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i89 = 0; c3_i89 < 10; c3_i89++) {\r\n    c3_b_inData[c3_i89] = (*(boolean_T (*)[10])c3_inData)[c3_i89];\r\n  }\r\n\r\n  for (c3_i90 = 0; c3_i90 < 10; c3_i90++) {\r\n    c3_u[c3_i90] = c3_b_inData[c3_i90];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[10];\r\n  int32_T c3_i91;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i91 = 0; c3_i91 < 10; c3_i91++) {\r\n    (*(boolean_T (*)[10])c3_outData)[c3_i91] = c3_y[c3_i91];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_b_inData[20];\r\n  int32_T c3_i93;\r\n  real_T c3_u[20];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i92 = 0; c3_i92 < 20; c3_i92++) {\r\n    c3_b_inData[c3_i92] = (*(real_T (*)[20])c3_inData)[c3_i92];\r\n  }\r\n\r\n  for (c3_i93 = 0; c3_i93 < 20; c3_i93++) {\r\n    c3_u[c3_i93] = c3_b_inData[c3_i93];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[20];\r\n  int32_T c3_i94;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  for (c3_i94 = 0; c3_i94 < 20; c3_i94++) {\r\n    (*(real_T (*)[20])c3_outData)[c3_i94] = c3_y[c3_i94];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_b_inData[2];\r\n  int32_T c3_i96;\r\n  real_T c3_u[2];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i95 = 0; c3_i95 < 2; c3_i95++) {\r\n    c3_b_inData[c3_i95] = (*(real_T (*)[2])c3_inData)[c3_i95];\r\n  }\r\n\r\n  for (c3_i96 = 0; c3_i96 < 2; c3_i96++) {\r\n    c3_u[c3_i96] = c3_b_inData[c3_i96];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i97;\r\n  real_T c3_b_inData[21];\r\n  int32_T c3_i98;\r\n  real_T c3_u[21];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i97 = 0; c3_i97 < 21; c3_i97++) {\r\n    c3_b_inData[c3_i97] = (*(real_T (*)[21])c3_inData)[c3_i97];\r\n  }\r\n\r\n  for (c3_i98 = 0; c3_i98 < 21; c3_i98++) {\r\n    c3_u[c3_i98] = c3_b_inData[c3_i98];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i99;\r\n  int32_T c3_i100;\r\n  int32_T c3_i101;\r\n  real_T c3_b_inData[24];\r\n  int32_T c3_i102;\r\n  int32_T c3_i103;\r\n  int32_T c3_i104;\r\n  real_T c3_u[24];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i99 = 0;\r\n  for (c3_i100 = 0; c3_i100 < 4; c3_i100++) {\r\n    for (c3_i101 = 0; c3_i101 < 6; c3_i101++) {\r\n      c3_b_inData[c3_i101 + c3_i99] = (*(real_T (*)[24])c3_inData)[c3_i101 +\r\n        c3_i99];\r\n    }\r\n\r\n    c3_i99 += 6;\r\n  }\r\n\r\n  c3_i102 = 0;\r\n  for (c3_i103 = 0; c3_i103 < 4; c3_i103++) {\r\n    for (c3_i104 = 0; c3_i104 < 6; c3_i104++) {\r\n      c3_u[c3_i104 + c3_i102] = c3_b_inData[c3_i104 + c3_i102];\r\n    }\r\n\r\n    c3_i102 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i105;\r\n  int32_T c3_i106;\r\n  int32_T c3_i107;\r\n  real_T c3_b_inData[16];\r\n  int32_T c3_i108;\r\n  int32_T c3_i109;\r\n  int32_T c3_i110;\r\n  real_T c3_u[16];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i105 = 0;\r\n  for (c3_i106 = 0; c3_i106 < 4; c3_i106++) {\r\n    for (c3_i107 = 0; c3_i107 < 4; c3_i107++) {\r\n      c3_b_inData[c3_i107 + c3_i105] = (*(real_T (*)[16])c3_inData)[c3_i107 +\r\n        c3_i105];\r\n    }\r\n\r\n    c3_i105 += 4;\r\n  }\r\n\r\n  c3_i108 = 0;\r\n  for (c3_i109 = 0; c3_i109 < 4; c3_i109++) {\r\n    for (c3_i110 = 0; c3_i110 < 4; c3_i110++) {\r\n      c3_u[c3_i110 + c3_i108] = c3_b_inData[c3_i110 + c3_i108];\r\n    }\r\n\r\n    c3_i108 += 4;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 4, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i111;\r\n  real_T c3_b_inData[20];\r\n  int32_T c3_i112;\r\n  real_T c3_u[20];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i111 = 0; c3_i111 < 20; c3_i111++) {\r\n    c3_b_inData[c3_i111] = (*(real_T (*)[20])c3_inData)[c3_i111];\r\n  }\r\n\r\n  for (c3_i112 = 0; c3_i112 < 20; c3_i112++) {\r\n    c3_u[c3_i112] = c3_b_inData[c3_i112];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 20), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i113;\r\n  real_T c3_b_inData[4];\r\n  int32_T c3_i114;\r\n  real_T c3_u[4];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i113 = 0; c3_i113 < 4; c3_i113++) {\r\n    c3_b_inData[c3_i113] = (*(real_T (*)[4])c3_inData)[c3_i113];\r\n  }\r\n\r\n  for (c3_i114 = 0; c3_i114 < 4; c3_i114++) {\r\n    c3_u[c3_i114] = c3_b_inData[c3_i114];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i115;\r\n  int32_T c3_i116;\r\n  int32_T c3_i117;\r\n  real_T c3_b_inData[126];\r\n  int32_T c3_i118;\r\n  int32_T c3_i119;\r\n  int32_T c3_i120;\r\n  real_T c3_u[126];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i115 = 0;\r\n  for (c3_i116 = 0; c3_i116 < 21; c3_i116++) {\r\n    for (c3_i117 = 0; c3_i117 < 6; c3_i117++) {\r\n      c3_b_inData[c3_i117 + c3_i115] = (*(real_T (*)[126])c3_inData)[c3_i117 +\r\n        c3_i115];\r\n    }\r\n\r\n    c3_i115 += 6;\r\n  }\r\n\r\n  c3_i118 = 0;\r\n  for (c3_i119 = 0; c3_i119 < 21; c3_i119++) {\r\n    for (c3_i120 = 0; c3_i120 < 6; c3_i120++) {\r\n      c3_u[c3_i120 + c3_i118] = c3_b_inData[c3_i120 + c3_i118];\r\n    }\r\n\r\n    c3_i118 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 21), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i121;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i122;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i121 = 0; c3_i121 < 6; c3_i121++) {\r\n    c3_b_inData[c3_i121] = (*(real_T (*)[6])c3_inData)[c3_i121];\r\n  }\r\n\r\n  for (c3_i122 = 0; c3_i122 < 6; c3_i122++) {\r\n    c3_u[c3_i122] = c3_b_inData[c3_i122];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i123;\r\n  int32_T c3_i124;\r\n  int32_T c3_i125;\r\n  real_T c3_b_inData[12];\r\n  int32_T c3_i126;\r\n  int32_T c3_i127;\r\n  int32_T c3_i128;\r\n  real_T c3_u[12];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i123 = 0;\r\n  for (c3_i124 = 0; c3_i124 < 2; c3_i124++) {\r\n    for (c3_i125 = 0; c3_i125 < 6; c3_i125++) {\r\n      c3_b_inData[c3_i125 + c3_i123] = (*(real_T (*)[12])c3_inData)[c3_i125 +\r\n        c3_i123];\r\n    }\r\n\r\n    c3_i123 += 6;\r\n  }\r\n\r\n  c3_i126 = 0;\r\n  for (c3_i127 = 0; c3_i127 < 2; c3_i127++) {\r\n    for (c3_i128 = 0; c3_i128 < 6; c3_i128++) {\r\n      c3_u[c3_i128 + c3_i126] = c3_b_inData[c3_i128 + c3_i126];\r\n    }\r\n\r\n    c3_i126 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i129;\r\n  int32_T c3_i130;\r\n  int32_T c3_i131;\r\n  real_T c3_b_inData[63];\r\n  int32_T c3_i132;\r\n  int32_T c3_i133;\r\n  int32_T c3_i134;\r\n  real_T c3_u[63];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i129 = 0;\r\n  for (c3_i130 = 0; c3_i130 < 3; c3_i130++) {\r\n    for (c3_i131 = 0; c3_i131 < 21; c3_i131++) {\r\n      c3_b_inData[c3_i131 + c3_i129] = (*(real_T (*)[63])c3_inData)[c3_i131 +\r\n        c3_i129];\r\n    }\r\n\r\n    c3_i129 += 21;\r\n  }\r\n\r\n  c3_i132 = 0;\r\n  for (c3_i133 = 0; c3_i133 < 3; c3_i133++) {\r\n    for (c3_i134 = 0; c3_i134 < 21; c3_i134++) {\r\n      c3_u[c3_i134 + c3_i132] = c3_b_inData[c3_i134 + c3_i132];\r\n    }\r\n\r\n    c3_i132 += 21;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 21, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i135;\r\n  int32_T c3_i136;\r\n  int32_T c3_i137;\r\n  real_T c3_b_inData[60];\r\n  int32_T c3_i138;\r\n  int32_T c3_i139;\r\n  int32_T c3_i140;\r\n  real_T c3_u[60];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i135 = 0;\r\n  for (c3_i136 = 0; c3_i136 < 3; c3_i136++) {\r\n    for (c3_i137 = 0; c3_i137 < 20; c3_i137++) {\r\n      c3_b_inData[c3_i137 + c3_i135] = (*(real_T (*)[60])c3_inData)[c3_i137 +\r\n        c3_i135];\r\n    }\r\n\r\n    c3_i135 += 20;\r\n  }\r\n\r\n  c3_i138 = 0;\r\n  for (c3_i139 = 0; c3_i139 < 3; c3_i139++) {\r\n    for (c3_i140 = 0; c3_i140 < 20; c3_i140++) {\r\n      c3_u[c3_i140 + c3_i138] = c3_b_inData[c3_i140 + c3_i138];\r\n    }\r\n\r\n    c3_i138 += 20;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 20, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i142;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i141 = 0; c3_i141 < 3; c3_i141++) {\r\n    c3_b_inData[c3_i141] = (*(real_T (*)[3])c3_inData)[c3_i141];\r\n  }\r\n\r\n  for (c3_i142 = 0; c3_i142 < 3; c3_i142++) {\r\n    c3_u[c3_i142] = c3_b_inData[c3_i142];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i143;\r\n  int32_T c3_i144;\r\n  int32_T c3_i145;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i146;\r\n  int32_T c3_i147;\r\n  int32_T c3_i148;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i143 = 0;\r\n  for (c3_i144 = 0; c3_i144 < 3; c3_i144++) {\r\n    for (c3_i145 = 0; c3_i145 < 2; c3_i145++) {\r\n      c3_b_inData[c3_i145 + c3_i143] = (*(real_T (*)[6])c3_inData)[c3_i145 +\r\n        c3_i143];\r\n    }\r\n\r\n    c3_i143 += 2;\r\n  }\r\n\r\n  c3_i146 = 0;\r\n  for (c3_i147 = 0; c3_i147 < 3; c3_i147++) {\r\n    for (c3_i148 = 0; c3_i148 < 2; c3_i148++) {\r\n      c3_u[c3_i148 + c3_i146] = c3_b_inData[c3_i148 + c3_i146];\r\n    }\r\n\r\n    c3_i146 += 2;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 2, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i149;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i150;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i149 = 0; c3_i149 < 6; c3_i149++) {\r\n    c3_b_inData[c3_i149] = (*(char_T (*)[6])c3_inData)[c3_i149];\r\n  }\r\n\r\n  for (c3_i150 = 0; c3_i150 < 6; c3_i150++) {\r\n    c3_u[c3_i150] = c3_b_inData[c3_i150];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d34;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d34, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d34;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[20])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20])\r\n{\r\n  real_T c3_dv18[20];\r\n  int32_T c3_i151;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv18, 1, 0, 0U, 1, 0U, 1, 20);\r\n  for (c3_i151 = 0; c3_i151 < 20; c3_i151++) {\r\n    c3_y[c3_i151] = c3_dv18[c3_i151];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[10])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[10])\r\n{\r\n  boolean_T c3_bv2[10];\r\n  int32_T c3_i152;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 10);\r\n  for (c3_i152 = 0; c3_i152 < 10; c3_i152++) {\r\n    c3_y[c3_i152] = c3_bv2[c3_i152];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i153;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i153, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i153;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16])\r\n{\r\n  real_T c3_dv19[16];\r\n  int32_T c3_i154;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv19, 1, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i154 = 0; c3_i154 < 16; c3_i154++) {\r\n    c3_y[c3_i154] = c3_dv19[c3_i154];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[16];\r\n  int32_T c3_i155;\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i155 = 0;\r\n  for (c3_i156 = 0; c3_i156 < 4; c3_i156++) {\r\n    for (c3_i157 = 0; c3_i157 < 4; c3_i157++) {\r\n      (*(real_T (*)[16])c3_outData)[c3_i157 + c3_i155] = c3_y[c3_i157 + c3_i155];\r\n    }\r\n\r\n    c3_i155 += 4;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6])\r\n{\r\n  real_T c3_dv20[6];\r\n  int32_T c3_i158;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv20, 1, 0, 0U, 1, 0U, 2, 2, 3);\r\n  for (c3_i158 = 0; c3_i158 < 6; c3_i158++) {\r\n    c3_y[c3_i158] = c3_dv20[c3_i158];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[6];\r\n  int32_T c3_i159;\r\n  int32_T c3_i160;\r\n  int32_T c3_i161;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i159 = 0;\r\n  for (c3_i160 = 0; c3_i160 < 3; c3_i160++) {\r\n    for (c3_i161 = 0; c3_i161 < 2; c3_i161++) {\r\n      (*(real_T (*)[6])c3_outData)[c3_i161 + c3_i159] = c3_y[c3_i161 + c3_i159];\r\n    }\r\n\r\n    c3_i159 += 2;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv21[3];\r\n  int32_T c3_i162;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv21, 1, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i162 = 0; c3_i162 < 3; c3_i162++) {\r\n    c3_y[c3_i162] = c3_dv21[c3_i162];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i163;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  for (c3_i163 = 0; c3_i163 < 3; c3_i163++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i163] = c3_y[c3_i163];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60])\r\n{\r\n  real_T c3_dv22[60];\r\n  int32_T c3_i164;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 2, 20,\r\n                3);\r\n  for (c3_i164 = 0; c3_i164 < 60; c3_i164++) {\r\n    c3_y[c3_i164] = c3_dv22[c3_i164];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[60];\r\n  int32_T c3_i165;\r\n  int32_T c3_i166;\r\n  int32_T c3_i167;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i165 = 0;\r\n  for (c3_i166 = 0; c3_i166 < 3; c3_i166++) {\r\n    for (c3_i167 = 0; c3_i167 < 20; c3_i167++) {\r\n      (*(real_T (*)[60])c3_outData)[c3_i167 + c3_i165] = c3_y[c3_i167 + c3_i165];\r\n    }\r\n\r\n    c3_i165 += 20;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[63])\r\n{\r\n  real_T c3_dv23[63];\r\n  int32_T c3_i168;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 21,\r\n                3);\r\n  for (c3_i168 = 0; c3_i168 < 63; c3_i168++) {\r\n    c3_y[c3_i168] = c3_dv23[c3_i168];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[63];\r\n  int32_T c3_i169;\r\n  int32_T c3_i170;\r\n  int32_T c3_i171;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kv);\r\n  c3_i169 = 0;\r\n  for (c3_i170 = 0; c3_i170 < 3; c3_i170++) {\r\n    for (c3_i171 = 0; c3_i171 < 21; c3_i171++) {\r\n      (*(real_T (*)[63])c3_outData)[c3_i171 + c3_i169] = c3_y[c3_i171 + c3_i169];\r\n    }\r\n\r\n    c3_i169 += 21;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6])\r\n{\r\n  real_T c3_dv24[6];\r\n  int32_T c3_i172;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i172 = 0; c3_i172 < 6; c3_i172++) {\r\n    c3_y[c3_i172] = c3_dv24[c3_i172];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mlim;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[6];\r\n  int32_T c3_i173;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mlim = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mlim), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mlim);\r\n  for (c3_i173 = 0; c3_i173 < 6; c3_i173++) {\r\n    (*(real_T (*)[6])c3_outData)[c3_i173] = c3_y[c3_i173];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12])\r\n{\r\n  real_T c3_dv25[12];\r\n  int32_T c3_i174;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 6, 2);\r\n  for (c3_i174 = 0; c3_i174 < 12; c3_i174++) {\r\n    c3_y[c3_i174] = c3_dv25[c3_i174];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[12];\r\n  int32_T c3_i175;\r\n  int32_T c3_i176;\r\n  int32_T c3_i177;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  c3_i175 = 0;\r\n  for (c3_i176 = 0; c3_i176 < 2; c3_i176++) {\r\n    for (c3_i177 = 0; c3_i177 < 6; c3_i177++) {\r\n      (*(real_T (*)[12])c3_outData)[c3_i177 + c3_i175] = c3_y[c3_i177 + c3_i175];\r\n    }\r\n\r\n    c3_i175 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126])\r\n{\r\n  real_T c3_dv26[126];\r\n  int32_T c3_i178;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 6,\r\n                21);\r\n  for (c3_i178 = 0; c3_i178 < 126; c3_i178++) {\r\n    c3_y[c3_i178] = c3_dv26[c3_i178];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[126];\r\n  int32_T c3_i179;\r\n  int32_T c3_i180;\r\n  int32_T c3_i181;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mv);\r\n  c3_i179 = 0;\r\n  for (c3_i180 = 0; c3_i180 < 21; c3_i180++) {\r\n    for (c3_i181 = 0; c3_i181 < 6; c3_i181++) {\r\n      (*(real_T (*)[126])c3_outData)[c3_i181 + c3_i179] = c3_y[c3_i181 + c3_i179];\r\n    }\r\n\r\n    c3_i179 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4])\r\n{\r\n  real_T c3_dv27[4];\r\n  int32_T c3_i182;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i182 = 0; c3_i182 < 4; c3_i182++) {\r\n    c3_y[c3_i182] = c3_dv27[c3_i182];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[4];\r\n  int32_T c3_i183;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i183 = 0; c3_i183 < 4; c3_i183++) {\r\n    (*(real_T (*)[4])c3_outData)[c3_i183] = c3_y[c3_i183];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[20])\r\n{\r\n  real_T c3_dv28[20];\r\n  int32_T c3_i184;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 1,\r\n                20);\r\n  for (c3_i184 = 0; c3_i184 < 20; c3_i184++) {\r\n    c3_y[c3_i184] = c3_dv28[c3_i184];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[20];\r\n  int32_T c3_i185;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i185 = 0; c3_i185 < 20; c3_i185++) {\r\n    (*(real_T (*)[20])c3_outData)[c3_i185] = c3_y[c3_i185];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[24])\r\n{\r\n  real_T c3_dv29[24];\r\n  int32_T c3_i186;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 2, 6, 4);\r\n  for (c3_i186 = 0; c3_i186 < 24; c3_i186++) {\r\n    c3_y[c3_i186] = c3_dv29[c3_i186];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ac;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[24];\r\n  int32_T c3_i187;\r\n  int32_T c3_i188;\r\n  int32_T c3_i189;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ac = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ac), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ac);\r\n  c3_i187 = 0;\r\n  for (c3_i188 = 0; c3_i188 < 4; c3_i188++) {\r\n    for (c3_i189 = 0; c3_i189 < 6; c3_i189++) {\r\n      (*(real_T (*)[24])c3_outData)[c3_i189 + c3_i187] = c3_y[c3_i189 + c3_i187];\r\n    }\r\n\r\n    c3_i187 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2008884449U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3349456191U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3383499532U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(154235383U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"uZDKFWLB82ra0oNDUcAsCG\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(21);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(21);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(21);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(2);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(20);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 21;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 2;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 20;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 20;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 21;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 21;\r\n          _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_old_u;\r\n          real_T *c3_umin;\r\n          real_T *c3_umax;\r\n          real_T *c3_ymin;\r\n          real_T *c3_ymax;\r\n          real_T *c3_switch_in;\r\n          real_T *c3_ywt;\r\n          real_T *c3_duwt;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_u;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[20];\r\n          real_T (*c3_vseq)[21];\r\n          real_T (*c3_x)[2];\r\n          boolean_T (*c3_iA)[10];\r\n          real_T (*c3_useq)[20];\r\n          boolean_T (*c3_iAout)[10];\r\n          c3_iAout = (boolean_T (*)[10])ssGetOutputPortSignal(chartInstance->S,\r\n            5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[10])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[21])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[20])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, &chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, &chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"T7oeNP5jU5Ide0wJqxRvND\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(3697607324U));\r\n  ssSetChecksum1(S,(3163451633U));\r\n  ssSetChecksum2(S,(3010755970U));\r\n  ssSetChecksum3(S,(753621111U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[16];\r\n  real_T c3_Kx[6];\r\n  real_T c3_Ku1[3];\r\n  real_T c3_Kut[60];\r\n  real_T c3_Kr[60];\r\n  real_T c3_Kv[63];\r\n  real_T c3_Mlim[6];\r\n  real_T c3_Mx[12];\r\n  real_T c3_Mu1[6];\r\n  real_T c3_Mv[126];\r\n  real_T c3_z_degrees[4];\r\n  real_T c3_utarget[20];\r\n  real_T c3_p;\r\n  real_T c3_uoff;\r\n  real_T c3_yoff;\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[16];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[20];\r\n  real_T c3_Linv[16];\r\n  real_T c3_Ac[24];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (20.0)\r\n#define c4_b_ny                        (1.0)\r\n#define c4_b_nv                        (1.0)\r\n#define c4_b_yoff                      (0.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (1.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[20]);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[20]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[21]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[21]);\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier);\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  real_T c4_d7;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_yoff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d7 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i0;\r\n  real_T c4_u[20];\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_c_u[21];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_b_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T *c4_v;\r\n  real_T (*c4_vseq)[21];\r\n  real_T (*c4_rseq)[20];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i0 = 0; c4_i0 < 20; c4_i0++) {\r\n    c4_u[c4_i0] = (*c4_rseq)[c4_i0];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  c4_hoistedGlobal = *c4_v;\r\n  c4_b_u = c4_hoistedGlobal;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i1 = 0; c4_i1 < 21; c4_i1++) {\r\n    c4_c_u[c4_i1] = (*c4_vseq)[c4_i1];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_b_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_b_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv0[20];\r\n  int32_T c4_i2;\r\n  real_T c4_dv1[21];\r\n  int32_T c4_i3;\r\n  real_T *c4_v;\r\n  real_T (*c4_rseq)[20];\r\n  real_T (*c4_vseq)[21];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)), \"rseq\",\r\n                      c4_dv0);\r\n  for (c4_i2 = 0; c4_i2 < 20; c4_i2++) {\r\n    (*c4_rseq)[c4_i2] = c4_dv0[c4_i2];\r\n  }\r\n\r\n  *c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)),\r\n    \"v\");\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv1);\r\n  for (c4_i3 = 0; c4_i3 < 21; c4_i3++) {\r\n    (*c4_vseq)[c4_i3] = c4_dv1[c4_i3];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_i_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i4;\r\n  int32_T c4_i5;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_hoistedGlobal;\r\n  real_T c4_ref;\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff;\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[20];\r\n  real_T c4_vseq[21];\r\n  real_T c4_v;\r\n  int32_T c4_i6;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T c4_f_u;\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv2[20];\r\n  int32_T c4_i9;\r\n  real_T c4_dv3[21];\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  int32_T c4_i12;\r\n  real_T *c4_b_ref;\r\n  real_T *c4_b_md;\r\n  real_T *c4_c_v;\r\n  real_T (*c4_c_rseq)[20];\r\n  real_T (*c4_c_vseq)[21];\r\n  c4_c_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i4 = 0; c4_i4 < 20; c4_i4++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i4], 0U);\r\n  }\r\n\r\n  for (c4_i5 = 0; c4_i5 < 21; c4_i5++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i5], 1U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_ref, 2U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_c_v, 4U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff, 8U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_ref;\r\n  c4_b_hoistedGlobal = *c4_b_md;\r\n  c4_ref = c4_hoistedGlobal;\r\n  c4_md = c4_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_yoff, 4U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_ref, 11U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  c4_c_yoff = c4_b_yoff;\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i6 = 0; c4_i6 < 6; c4_i6++) {\r\n    c4_DataType[c4_i6] = c4_cv0[c4_i6];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i7 = 0; c4_i7 < 20; c4_i7++) {\r\n    c4_rseq[c4_i7] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i8 = 0; c4_i8 < 21; c4_i8++) {\r\n    c4_vseq[c4_i8] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  c4_v = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  c4_u = c4_ref;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_f_u = c4_b_yoff;\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", &c4_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv2);\r\n  for (c4_i9 = 0; c4_i9 < 20; c4_i9++) {\r\n    c4_rseq[c4_i9] = c4_dv2[c4_i9];\r\n  }\r\n\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv3);\r\n  for (c4_i10 = 0; c4_i10 < 21; c4_i10++) {\r\n    c4_vseq[c4_i10] = c4_dv3[c4_i10];\r\n  }\r\n\r\n  c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\");\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i11 = 0; c4_i11 < 20; c4_i11++) {\r\n    (*c4_c_rseq)[c4_i11] = c4_rseq[c4_i11];\r\n  }\r\n\r\n  for (c4_i12 = 0; c4_i12 < 21; c4_i12++) {\r\n    (*c4_c_vseq)[c4_i12] = c4_vseq[c4_i12];\r\n  }\r\n\r\n  *c4_c_v = c4_v;\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i13;\r\n  real_T c4_b_inData[21];\r\n  int32_T c4_i14;\r\n  real_T c4_u[21];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i13 = 0; c4_i13 < 21; c4_i13++) {\r\n    c4_b_inData[c4_i13] = (*(real_T (*)[21])c4_inData)[c4_i13];\r\n  }\r\n\r\n  for (c4_i14 = 0; c4_i14 < 21; c4_i14++) {\r\n    c4_u[c4_i14] = c4_b_inData[c4_i14];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 21), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[21];\r\n  int32_T c4_i15;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i15 = 0; c4_i15 < 21; c4_i15++) {\r\n    (*(real_T (*)[21])c4_outData)[c4_i15] = c4_y[c4_i15];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i16;\r\n  real_T c4_b_inData[20];\r\n  int32_T c4_i17;\r\n  real_T c4_u[20];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i16 = 0; c4_i16 < 20; c4_i16++) {\r\n    c4_b_inData[c4_i16] = (*(real_T (*)[20])c4_inData)[c4_i16];\r\n  }\r\n\r\n  for (c4_i17 = 0; c4_i17 < 20; c4_i17++) {\r\n    c4_u[c4_i17] = c4_b_inData[c4_i17];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 20), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[20];\r\n  int32_T c4_i18;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i18 = 0; c4_i18 < 20; c4_i18++) {\r\n    (*(real_T (*)[20])c4_outData)[c4_i18] = c4_y[c4_i18];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i19;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i20;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i19 = 0; c4_i19 < 6; c4_i19++) {\r\n    c4_b_inData[c4_i19] = (*(char_T (*)[6])c4_inData)[c4_i19];\r\n  }\r\n\r\n  for (c4_i20 = 0; c4_i20 < 6; c4_i20++) {\r\n    c4_u[c4_i20] = c4_b_inData[c4_i20];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[20])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[20])\r\n{\r\n  real_T c4_dv4[20];\r\n  int32_T c4_i21;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv4, 1, 0, 0U, 1, 0U, 1, 20);\r\n  for (c4_i21 = 0; c4_i21 < 20; c4_i21++) {\r\n    c4_y[c4_i21] = c4_dv4[c4_i21];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[21])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[21])\r\n{\r\n  real_T c4_dv5[21];\r\n  int32_T c4_i22;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv5, 1, 0, 0U, 1, 0U, 1, 21);\r\n  for (c4_i22 = 0; c4_i22 < 21; c4_i22++) {\r\n    c4_y[c4_i22] = c4_dv5[c4_i22];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier)\r\n{\r\n  real_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  return c4_y;\r\n}\r\n\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d8;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d8, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d8;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i23;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i23, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i23;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_j_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3270233154U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1563808691U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(718734131U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(371247434U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"2HNWbd5KcYTrI0VNgAqzxF\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(20);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(21);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 20;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 21;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_e_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_ref;\r\n          real_T *c4_md;\r\n          real_T *c4_v;\r\n          real_T (*c4_rseq)[20];\r\n          real_T (*c4_vseq)[21];\r\n          c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[21])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[20])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, &chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"3RFiiaQWqqM0bZLXITcoK\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(3664384646U));\r\n  ssSetChecksum1(S,(3453141569U));\r\n  ssSetChecksum2(S,(3009631007U));\r\n  ssSetChecksum3(S,(1767285725U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff;\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3549040148U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(67502094U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(728751800U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(456768330U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"uZDKFWLB82ra0oNDUcAsCG\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"2HNWbd5KcYTrI0VNgAqzxF\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"T7oeNP5jU5Ide0wJqxRvND\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"3RFiiaQWqqM0bZLXITcoK\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"T7oeNP5jU5Ide0wJqxRvND\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"3RFiiaQWqqM0bZLXITcoK\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_doubleint_for_speedctrl\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_doubleint_for_speedctrl/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_miso_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_miso_sfun.h\"\r\n#include \"mpc_miso_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_misoMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_miso_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_miso_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_miso_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_miso_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(342216079U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2248950689U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3110232936U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2173514424U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3266390878U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1925791385U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2063469511U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2521551538U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2574898159U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3992086488U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2209760471U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(221268175U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_miso_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_miso_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_miso_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_miso_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_miso_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpc_misoMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpc_miso\",\r\n    \"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpc_misoMachineNumber_,0,\r\n    0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpc_misoMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_miso_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_miso_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpc_miso\",\r\n      \"mpc_miso\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_miso_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun.h",
    "content": "#ifndef __mpc_miso_sfun_h__\r\n#define __mpc_miso_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_misoMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_miso_initializer(void);\r\nextern void mpc_miso_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_miso_optimization_info(void);\r\nextern void unload_mpc_miso_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_miso\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_miso_sfun.c\r\nMACHINE_REG = mpc_miso_sfun_registry.c\r\nMAKEFILE    = mpc_miso_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_miso_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_miso\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun.mol",
    "content": "mpc_miso_sfun.obj\r\nmpc_miso_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_misoMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misoMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_misoMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/mpc_miso_sfun_registry.c",
    "content": "#include \"mpc_miso_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_miso_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_miso_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_miso_autoinheritance_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_miso\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_miso_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_miso_third_party_uses_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_miso\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_miso_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_miso_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_miso\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_miso_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_miso_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_miso\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_miso_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_miso_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_miso\")) {\r\n    return(sf_mpc_miso_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_miso_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_miso_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_miso_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_miso_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_miso_debug_initialize(struct SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_miso_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_miso_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_miso_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (10.0)\r\n#define c3_b_nu                        (1.0)\r\n#define c3_b_isQP                      (TRUE)\r\n#define c3_b_ny                        (1.0)\r\n#define c3_b_degrees                   (4.0)\r\n#define c3_b_uoff                      (0.0)\r\n#define c3_b_yoff                      (0.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (6.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier);\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[10]);\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[10]);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[16]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[16]);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16]);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[30]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[66]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[72]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[264]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[10]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[48]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[16];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[18];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[3];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[30];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[30];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[66];\r\n  int32_T c3_i5;\r\n  real_T c3_dv6[12];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[72];\r\n  int32_T c3_i7;\r\n  real_T c3_dv8[12];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[264];\r\n  int32_T c3_i9;\r\n  real_T c3_dv10[4];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[10];\r\n  int32_T c3_i11;\r\n  real_T c3_d4;\r\n  real_T c3_d5;\r\n  real_T c3_d6;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_d17;\r\n  real_T c3_d18;\r\n  real_T c3_dv12[16];\r\n  int32_T c3_i12;\r\n  real_T c3_d19;\r\n  real_T c3_dv13[10];\r\n  int32_T c3_i13;\r\n  real_T c3_dv14[16];\r\n  int32_T c3_i14;\r\n  real_T c3_dv15[48];\r\n  int32_T c3_i15;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  real_T c3_d32;\r\n  real_T c3_d33;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i0 = 0; c3_i0 < 16; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 6, 3);\r\n  for (c3_i1 = 0; c3_i1 < 18; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i2 = 0; c3_i2 < 3; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 10, 3);\r\n  for (c3_i3 = 0; c3_i3 < 30; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 10, 3);\r\n  for (c3_i4 = 0; c3_i4 < 30; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 22, 3);\r\n  for (c3_i5 = 0; c3_i5 < 66; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 1, 12);\r\n  for (c3_i6 = 0; c3_i6 < 12; c3_i6++) {\r\n    chartInstance->c3_Mlim[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 12, 6);\r\n  for (c3_i7 = 0; c3_i7 < 72; c3_i7++) {\r\n    chartInstance->c3_Mx[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 1, 12);\r\n  for (c3_i8 = 0; c3_i8 < 12; c3_i8++) {\r\n    chartInstance->c3_Mu1[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 2, 12, 22);\r\n  for (c3_i9 = 0; c3_i9 < 264; c3_i9++) {\r\n    chartInstance->c3_Mv[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i10 = 0; c3_i10 < 4; c3_i10++) {\r\n    chartInstance->c3_z_degrees[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 10);\r\n  for (c3_i11 = 0; c3_i11 < 10; c3_i11++) {\r\n    chartInstance->c3_utarget[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_uoff = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_yoff = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d7;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d9 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i12 = 0; c3_i12 < 16; c3_i12++) {\r\n    chartInstance->c3_H[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv13, 0, 0, 0U, 1, 0U, 2, 1, 10);\r\n  for (c3_i13 = 0; c3_i13 < 10; c3_i13++) {\r\n    chartInstance->c3_blocking_moves[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i14 = 0; c3_i14 < 16; c3_i14++) {\r\n    chartInstance->c3_Linv[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv15, 0, 0, 0U, 1, 0U, 2, 12, 4);\r\n  for (c3_i15 = 0; c3_i15 < 48; c3_i15++) {\r\n    chartInstance->c3_Ac[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d32, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d32;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d33, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d33;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i16;\r\n  boolean_T c3_b_u[16];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i17;\r\n  real_T c3_e_u[10];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_d_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_g_u;\r\n  real_T (*c3_useq)[10];\r\n  boolean_T (*c3_iAout)[16];\r\n  c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i16 = 0; c3_i16 < 16; c3_i16++) {\r\n    c3_b_u[c3_i16] = (*c3_iAout)[c3_i16];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 16),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  c3_c_hoistedGlobal = *c3_g_u;\r\n  c3_d_u = c3_c_hoistedGlobal;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i17 = 0; c3_i17 < 10; c3_i17++) {\r\n    c3_e_u[c3_i17] = (*c3_useq)[c3_i17];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_d_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_d_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[16];\r\n  int32_T c3_i18;\r\n  real_T c3_dv16[10];\r\n  int32_T c3_i19;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_b_u;\r\n  boolean_T (*c3_iAout)[16];\r\n  real_T (*c3_useq)[10];\r\n  c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i18 = 0; c3_i18 < 16; c3_i18++) {\r\n    (*c3_iAout)[c3_i18] = c3_bv0[c3_i18];\r\n  }\r\n\r\n  *c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    2)), \"status\");\r\n  *c3_b_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)),\r\n    \"u\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv16);\r\n  for (c3_i19 = 0; c3_i19 < 10; c3_i19++) {\r\n    (*c3_useq)[c3_i19] = c3_dv16[c3_i19];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_t_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i20;\r\n  int32_T c3_i21;\r\n  int32_T c3_i22;\r\n  int32_T c3_i23;\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  real_T *c3_old_u;\r\n  real_T *c3_umin;\r\n  real_T *c3_umax;\r\n  real_T *c3_ymin;\r\n  real_T *c3_ymax;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_ywt;\r\n  real_T *c3_duwt;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_u;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[16];\r\n  real_T (*c3_useq)[10];\r\n  boolean_T (*c3_iA)[16];\r\n  real_T (*c3_x)[6];\r\n  real_T (*c3_vseq)[22];\r\n  real_T (*c3_rseq)[10];\r\n  c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[16])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[22])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i20 = 0; c3_i20 < 10; c3_i20++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i20], 0U);\r\n  }\r\n\r\n  for (c3_i21 = 0; c3_i21 < 22; c3_i21++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i21], 1U);\r\n  }\r\n\r\n  for (c3_i22 = 0; c3_i22 < 6; c3_i22++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i22], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_old_u, 3U);\r\n  for (c3_i23 = 0; c3_i23 < 16; c3_i23++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i23], 4U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_umin, 5U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_umax, 6U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymin, 7U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymax, 8U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ywt, 10U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_duwt, 11U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_u, 13U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i24 = 0; c3_i24 < 10; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i24], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i25 = 0; c3_i25 < 16; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i25], 21U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 18; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i26], 22U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i27], 23U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 30; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i28], 24U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 30; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i29], 25U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 66; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i30], 26U);\r\n  }\r\n\r\n  for (c3_i31 = 0; c3_i31 < 12; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim[c3_i31], 27U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 72; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i32], 28U);\r\n  }\r\n\r\n  for (c3_i33 = 0; c3_i33 < 12; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i33], 29U);\r\n  }\r\n\r\n  for (c3_i34 = 0; c3_i34 < 264; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv[c3_i34], 30U);\r\n  }\r\n\r\n  for (c3_i35 = 0; c3_i35 < 4; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i35], 31U);\r\n  }\r\n\r\n  for (c3_i36 = 0; c3_i36 < 10; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i36], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff, 34U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff, 35U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i37 = 0; c3_i37 < 16; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i37], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i38 = 0; c3_i38 < 10; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i38], 50U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 16; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i39], 51U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 48; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i40], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i41 = 0; c3_i41 < 16; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i41], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_hoistedGlobal;\r\n  real_T c3_e_hoistedGlobal;\r\n  real_T c3_f_hoistedGlobal;\r\n  real_T c3_g_hoistedGlobal;\r\n  real_T c3_h_hoistedGlobal;\r\n  real_T c3_i_hoistedGlobal;\r\n  int32_T c3_i42;\r\n  real_T c3_rseq[10];\r\n  int32_T c3_i43;\r\n  real_T c3_vseq[22];\r\n  int32_T c3_i44;\r\n  real_T c3_x[6];\r\n  real_T c3_old_u;\r\n  int32_T c3_i45;\r\n  boolean_T c3_iA[16];\r\n  real_T c3_umin;\r\n  real_T c3_umax;\r\n  real_T c3_ymin;\r\n  real_T c3_ymax;\r\n  real_T c3_switch_in;\r\n  real_T c3_ywt;\r\n  real_T c3_duwt;\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[16];\r\n  real_T c3_c_Kx[18];\r\n  real_T c3_c_Ku1[3];\r\n  real_T c3_c_Kut[30];\r\n  real_T c3_c_Kr[30];\r\n  real_T c3_c_Kv[66];\r\n  real_T c3_c_Mlim[12];\r\n  real_T c3_c_Mx[72];\r\n  real_T c3_c_Mu1[12];\r\n  real_T c3_c_Mv[264];\r\n  real_T c3_c_z_degrees[4];\r\n  real_T c3_c_utarget[10];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff;\r\n  real_T c3_c_yoff;\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[16];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[10];\r\n  real_T c3_c_Linv[16];\r\n  real_T c3_c_Ac[48];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u;\r\n  real_T c3_cost;\r\n  real_T c3_useq[10];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[16];\r\n  int32_T c3_i46;\r\n  static real_T c3_d_Ac[48] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -0.0,\r\n    -0.0, 1.0, 0.0, 0.0, -0.0, -1.0, -1.0, -0.0, 1.0, 1.0, -0.0, -1.0, -0.0, 0.0,\r\n    1.0, 0.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, -0.0, -0.0, -1.0, 0.0, 0.0, 1.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i47;\r\n  static real_T c3_d_Linv[16] = { 0.51974439223902236, -4.306353246390362,\r\n    1.1284975779708617, 0.0, 0.0, 5.2205360009677628, -6.048029706156492, 0.0,\r\n    0.0, 0.0, 5.8880509063979112, 0.0, 0.0, 0.0, 0.0, 0.003162277660168379 };\r\n\r\n  int32_T c3_i48;\r\n  static real_T c3_d_blocking_moves[10] = { 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i49;\r\n  static real_T c3_d_H[16] = { 3.7018632844769384, 3.0536195842429539,\r\n    2.4270914829834132, 0.0, 3.0536195842429539, 2.5555835300633993,\r\n    2.039765449119149, 0.0, 2.4270914829834132, 2.039765449119149,\r\n    1.65885635386588, 0.0, 0.0, 0.0, 0.0, 100000.0 };\r\n\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  int32_T c3_i52;\r\n  int32_T c3_i53;\r\n  static real_T c3_d_Mu1[12] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i54;\r\n  int32_T c3_i55;\r\n  static real_T c3_d_Mlim[12] = { 1.0, 1.0, 1.0, -0.0, -0.0, -0.0, 10.0, 10.0,\r\n    10.0, 10.0, 10.0, 10.0 };\r\n\r\n  int32_T c3_i56;\r\n  static real_T c3_d_Kv[66] = { 0.26736837970709137, 0.0, 0.32229457105274556,\r\n    0.0, 0.37728034262429605, 0.0, 0.42571191063003594, 0.0, 0.46085233835973016,\r\n    0.0, 0.47588717697705607, 0.0, 0.46391962602376158, 0.0, 0.41790933514016426,\r\n    0.0, 0.33054926033068066, 0.0, 0.19407493146633339, 0.0, 0.0, 0.0,\r\n    0.19263752904770431, 0.0, 0.23528800930402588, 0.0, 0.28311151815964147, 0.0,\r\n    0.32942205374752287, 0.0, 0.36725766459511905, 0.0, 0.38945616102650948, 0.0,\r\n    0.3886836890601677, 0.0, 0.35740904536088708, 0.0, 0.28781701814528815, 0.0,\r\n    0.17165414553769179, 0.0, 0.0, 0.0, 0.1344874068232263, 0.0,\r\n    0.16426328963169748, 0.0, 0.20063163502061809, 0.0, 0.24078212702205604, 0.0,\r\n    0.27772081866083542, 0.0, 0.30410963345995157, 0.0, 0.31232698162563166, 0.0,\r\n    0.29447789660530493, 0.0, 0.24234583062185322, 0.0, 0.14727849030025625, 0.0,\r\n    0.0, 0.0 };\r\n\r\n  int32_T c3_i57;\r\n  static real_T c3_d_Kr[30] = { -0.019285691839586231, -0.073942779826314489,\r\n    -0.158531631414913, -0.26699470212862925, -0.39294515083296416,\r\n    -0.52994048260316207, -0.67173226244228346, -0.81248470328568922,\r\n    -0.94695679742928063, -1.0706445509194631, -0.0, -0.019285691839586231,\r\n    -0.073942779826314489, -0.158531631414913, -0.26699470212862925,\r\n    -0.39294515083296416, -0.52994048260316207, -0.67173226244228346,\r\n    -0.81248470328568922, -0.94695679742928063, -0.0, -0.0,\r\n    -0.019285691839586231, -0.073942779826314489, -0.158531631414913,\r\n    -0.26699470212862925, -0.39294515083296416, -0.52994048260316207,\r\n    -0.67173226244228346, -0.81248470328568922 };\r\n\r\n  int32_T c3_i58;\r\n  int32_T c3_i59;\r\n  static real_T c3_d_Ku1[3] = { 3.6918632844769381, 3.0536195842429539,\r\n    2.4270914829834132 };\r\n\r\n  int32_T c3_i60;\r\n  static real_T c3_d_Kx[18] = { 3.1781195864761429, 1.2515954682453385,\r\n    1.2076108804103902, 3.1934696343190287, 0.82921546575328442,\r\n    34.492606244312782, 2.5122844733027141, 0.81919461755986145,\r\n    0.87007736781826428, 2.4776463305060781, 0.397945982950211,\r\n    28.415057120144649, 1.9029522509058372, 0.4987659213901236,\r\n    0.6074332946021106, 1.8377425348665839, 0.11708234027836006,\r\n    22.483001745862371 };\r\n\r\n  int32_T c3_i61;\r\n  static real_T c3_d_Hinv[16] = { 20.088319299446823, -29.306659030558706,\r\n    6.6446511868391793, 0.0, -29.306659030558706, 63.83265946395187,\r\n    -35.611106793256226, 0.0, 6.6446511868391793, -35.611106793256226,\r\n    34.669143476333261, 0.0, 0.0, 0.0, 0.0, 9.9999999999999974E-6 };\r\n\r\n  int32_T c3_i62;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i63;\r\n  int32_T c3_i64;\r\n  int32_T c3_i65;\r\n  real_T c3_b_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i66;\r\n  real_T c3_c_u[22];\r\n  const mxArray *c3_b_y = NULL;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_e_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_f_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  real_T c3_g_u;\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i67;\r\n  real_T c3_i_u[6];\r\n  const mxArray *c3_h_y = NULL;\r\n  real_T c3_j_u;\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i68;\r\n  boolean_T c3_k_u[16];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i69;\r\n  real_T c3_p_u[16];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i70;\r\n  real_T c3_q_u[18];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i71;\r\n  real_T c3_r_u[3];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i72;\r\n  real_T c3_s_u[30];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i73;\r\n  real_T c3_t_u[30];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i74;\r\n  real_T c3_u_u[66];\r\n  const mxArray *c3_t_y = NULL;\r\n  int32_T c3_i75;\r\n  real_T c3_v_u[12];\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i76;\r\n  real_T c3_w_u[72];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i77;\r\n  real_T c3_x_u[12];\r\n  const mxArray *c3_w_y = NULL;\r\n  int32_T c3_i78;\r\n  real_T c3_y_u[264];\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i79;\r\n  real_T c3_ab_u[4];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i80;\r\n  real_T c3_bb_u[10];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  real_T c3_db_u;\r\n  const mxArray *c3_cb_y = NULL;\r\n  real_T c3_eb_u;\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i81;\r\n  real_T c3_rb_u[16];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i82;\r\n  real_T c3_tb_u[10];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i83;\r\n  real_T c3_ub_u[16];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i84;\r\n  real_T c3_vb_u[48];\r\n  const mxArray *c3_ub_y = NULL;\r\n  real_T c3_wb_u;\r\n  const mxArray *c3_vb_y = NULL;\r\n  real_T c3_xb_u;\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv17[10];\r\n  int32_T c3_i85;\r\n  boolean_T c3_bv1[16];\r\n  int32_T c3_i86;\r\n  int32_T c3_i87;\r\n  int32_T c3_i88;\r\n  real_T *c3_b_old_u;\r\n  real_T *c3_b_umin;\r\n  real_T *c3_b_umax;\r\n  real_T *c3_b_ymin;\r\n  real_T *c3_b_ymax;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_ywt;\r\n  real_T *c3_b_duwt;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_pc_u;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_c_useq)[10];\r\n  boolean_T (*c3_c_iAout)[16];\r\n  boolean_T (*c3_b_iA)[16];\r\n  real_T (*c3_b_x)[6];\r\n  real_T (*c3_b_vseq)[22];\r\n  real_T (*c3_b_rseq)[10];\r\n  c3_c_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[16])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[22])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_old_u;\r\n  c3_b_hoistedGlobal = *c3_b_umin;\r\n  c3_c_hoistedGlobal = *c3_b_umax;\r\n  c3_d_hoistedGlobal = *c3_b_ymin;\r\n  c3_e_hoistedGlobal = *c3_b_ymax;\r\n  c3_f_hoistedGlobal = *c3_b_switch_in;\r\n  c3_g_hoistedGlobal = *c3_b_ywt;\r\n  c3_h_hoistedGlobal = *c3_b_duwt;\r\n  c3_i_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i42 = 0; c3_i42 < 10; c3_i42++) {\r\n    c3_rseq[c3_i42] = (*c3_b_rseq)[c3_i42];\r\n  }\r\n\r\n  for (c3_i43 = 0; c3_i43 < 22; c3_i43++) {\r\n    c3_vseq[c3_i43] = (*c3_b_vseq)[c3_i43];\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 6; c3_i44++) {\r\n    c3_x[c3_i44] = (*c3_b_x)[c3_i44];\r\n  }\r\n\r\n  c3_old_u = c3_hoistedGlobal;\r\n  for (c3_i45 = 0; c3_i45 < 16; c3_i45++) {\r\n    c3_iA[c3_i45] = (*c3_b_iA)[c3_i45];\r\n  }\r\n\r\n  c3_umin = c3_b_hoistedGlobal;\r\n  c3_umax = c3_c_hoistedGlobal;\r\n  c3_ymin = c3_d_hoistedGlobal;\r\n  c3_ymax = c3_e_hoistedGlobal;\r\n  c3_switch_in = c3_f_hoistedGlobal;\r\n  c3_ywt = c3_g_hoistedGlobal;\r\n  c3_duwt = c3_h_hoistedGlobal;\r\n  c3_rhoeps = c3_i_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mlim, 11U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mv, 14U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_uoff, 18U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_yoff, 19U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_old_u, 56U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umin, 58U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umax, 59U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymin, 60U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymax, 61U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ywt, 63U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_duwt, 64U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_u, 66U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i46 = 0; c3_i46 < 48; c3_i46++) {\r\n    c3_c_Ac[c3_i46] = c3_d_Ac[c3_i46];\r\n  }\r\n\r\n  for (c3_i47 = 0; c3_i47 < 16; c3_i47++) {\r\n    c3_c_Linv[c3_i47] = c3_d_Linv[c3_i47];\r\n  }\r\n\r\n  for (c3_i48 = 0; c3_i48 < 10; c3_i48++) {\r\n    c3_c_blocking_moves[c3_i48] = c3_d_blocking_moves[c3_i48];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i49 = 0; c3_i49 < 16; c3_i49++) {\r\n    c3_c_H[c3_i49] = c3_d_H[c3_i49];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  c3_c_yoff = c3_b_yoff;\r\n  c3_c_uoff = c3_b_uoff;\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i50 = 0; c3_i50 < 10; c3_i50++) {\r\n    c3_c_utarget[c3_i50] = 0.0;\r\n  }\r\n\r\n  for (c3_i51 = 0; c3_i51 < 4; c3_i51++) {\r\n    c3_c_z_degrees[c3_i51] = 0.0;\r\n  }\r\n\r\n  for (c3_i52 = 0; c3_i52 < 264; c3_i52++) {\r\n    c3_c_Mv[c3_i52] = 0.0;\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 12; c3_i53++) {\r\n    c3_c_Mu1[c3_i53] = c3_d_Mu1[c3_i53];\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 72; c3_i54++) {\r\n    c3_c_Mx[c3_i54] = 0.0;\r\n  }\r\n\r\n  for (c3_i55 = 0; c3_i55 < 12; c3_i55++) {\r\n    c3_c_Mlim[c3_i55] = c3_d_Mlim[c3_i55];\r\n  }\r\n\r\n  for (c3_i56 = 0; c3_i56 < 66; c3_i56++) {\r\n    c3_c_Kv[c3_i56] = c3_d_Kv[c3_i56];\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 30; c3_i57++) {\r\n    c3_c_Kr[c3_i57] = c3_d_Kr[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 30; c3_i58++) {\r\n    c3_c_Kut[c3_i58] = 0.0;\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 3; c3_i59++) {\r\n    c3_c_Ku1[c3_i59] = c3_d_Ku1[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 18; c3_i60++) {\r\n    c3_c_Kx[c3_i60] = c3_d_Kx[c3_i60];\r\n  }\r\n\r\n  for (c3_i61 = 0; c3_i61 < 16; c3_i61++) {\r\n    c3_c_Hinv[c3_i61] = c3_d_Hinv[c3_i61];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i62 = 0; c3_i62 < 6; c3_i62++) {\r\n    c3_DataType[c3_i62] = c3_cv0[c3_i62];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  c3_u = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i63 = 0; c3_i63 < 10; c3_i63++) {\r\n    c3_useq[c3_i63] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i64 = 0; c3_i64 < 16; c3_i64++) {\r\n    c3_iAout[c3_i64] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i65 = 0; c3_i65 < 10; c3_i65++) {\r\n    c3_b_u[c3_i65] = c3_rseq[c3_i65];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  for (c3_i66 = 0; c3_i66 < 22; c3_i66++) {\r\n    c3_c_u[c3_i66] = c3_vseq[c3_i66];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 22), FALSE);\r\n  c3_d_u = c3_umin;\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_e_u = c3_umax;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_f_u = c3_ymin;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_g_u = c3_ymax;\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", &c3_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i67 = 0; c3_i67 < 6; c3_i67++) {\r\n    c3_i_u[c3_i67] = c3_x[c3_i67];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  c3_j_u = c3_old_u;\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", &c3_j_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i68 = 0; c3_i68 < 16; c3_i68++) {\r\n    c3_k_u[c3_i68] = c3_iA[c3_i68];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 16),\r\n                FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i69 = 0; c3_i69 < 16; c3_i69++) {\r\n    c3_p_u[c3_i69] = c3_d_Hinv[c3_i69];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i70 = 0; c3_i70 < 18; c3_i70++) {\r\n    c3_q_u[c3_i70] = c3_d_Kx[c3_i70];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 6, 3),\r\n                FALSE);\r\n  for (c3_i71 = 0; c3_i71 < 3; c3_i71++) {\r\n    c3_r_u[c3_i71] = c3_d_Ku1[c3_i71];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 1, 3),\r\n                FALSE);\r\n  for (c3_i72 = 0; c3_i72 < 30; c3_i72++) {\r\n    c3_s_u[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 10, 3),\r\n                FALSE);\r\n  for (c3_i73 = 0; c3_i73 < 30; c3_i73++) {\r\n    c3_t_u[c3_i73] = c3_d_Kr[c3_i73];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 10, 3),\r\n                FALSE);\r\n  for (c3_i74 = 0; c3_i74 < 66; c3_i74++) {\r\n    c3_u_u[c3_i74] = c3_d_Kv[c3_i74];\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 22, 3),\r\n                FALSE);\r\n  for (c3_i75 = 0; c3_i75 < 12; c3_i75++) {\r\n    c3_v_u[c3_i75] = c3_d_Mlim[c3_i75];\r\n  }\r\n\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", c3_v_u, 0, 0U, 1U, 0U, 1, 12), FALSE);\r\n  for (c3_i76 = 0; c3_i76 < 72; c3_i76++) {\r\n    c3_w_u[c3_i76] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 12, 6),\r\n                FALSE);\r\n  for (c3_i77 = 0; c3_i77 < 12; c3_i77++) {\r\n    c3_x_u[c3_i77] = c3_d_Mu1[c3_i77];\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 1, 12), FALSE);\r\n  for (c3_i78 = 0; c3_i78 < 264; c3_i78++) {\r\n    c3_y_u[c3_i78] = 0.0;\r\n  }\r\n\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", c3_y_u, 0, 0U, 1U, 0U, 2, 12, 22),\r\n                FALSE);\r\n  for (c3_i79 = 0; c3_i79 < 4; c3_i79++) {\r\n    c3_ab_u[c3_i79] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  for (c3_i80 = 0; c3_i80 < 10; c3_i80++) {\r\n    c3_bb_u[c3_i80] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 10),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_db_u = c3_b_uoff;\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", &c3_db_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_eb_u = c3_b_yoff;\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", &c3_eb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i81 = 0; c3_i81 < 16; c3_i81++) {\r\n    c3_rb_u[c3_i81] = c3_d_H[c3_i81];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i82 = 0; c3_i82 < 10; c3_i82++) {\r\n    c3_tb_u[c3_i82] = c3_d_blocking_moves[c3_i82];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 10),\r\n                FALSE);\r\n  for (c3_i83 = 0; c3_i83 < 16; c3_i83++) {\r\n    c3_ub_u[c3_i83] = c3_d_Linv[c3_i83];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i84 = 0; c3_i84 < 48; c3_i84++) {\r\n    c3_vb_u[c3_i84] = c3_d_Ac[c3_i84];\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 12, 4),\r\n                FALSE);\r\n  c3_wb_u = c3_ywt;\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", &c3_wb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_xb_u = c3_duwt;\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", &c3_xb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\");\r\n  c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv17);\r\n  for (c3_i85 = 0; c3_i85 < 10; c3_i85++) {\r\n    c3_useq[c3_i85] = c3_dv17[c3_i85];\r\n  }\r\n\r\n  c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i86 = 0; c3_i86 < 16; c3_i86++) {\r\n    c3_iAout[c3_i86] = c3_bv1[c3_i86];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  *c3_pc_u = c3_u;\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i87 = 0; c3_i87 < 10; c3_i87++) {\r\n    (*c3_c_useq)[c3_i87] = c3_useq[c3_i87];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i88 = 0; c3_i88 < 16; c3_i88++) {\r\n    (*c3_c_iAout)[c3_i88] = c3_iAout[c3_i88];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i89;\r\n  boolean_T c3_b_inData[16];\r\n  int32_T c3_i90;\r\n  boolean_T c3_u[16];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i89 = 0; c3_i89 < 16; c3_i89++) {\r\n    c3_b_inData[c3_i89] = (*(boolean_T (*)[16])c3_inData)[c3_i89];\r\n  }\r\n\r\n  for (c3_i90 = 0; c3_i90 < 16; c3_i90++) {\r\n    c3_u[c3_i90] = c3_b_inData[c3_i90];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 16), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[16];\r\n  int32_T c3_i91;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i91 = 0; c3_i91 < 16; c3_i91++) {\r\n    (*(boolean_T (*)[16])c3_outData)[c3_i91] = c3_y[c3_i91];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_b_inData[10];\r\n  int32_T c3_i93;\r\n  real_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i92 = 0; c3_i92 < 10; c3_i92++) {\r\n    c3_b_inData[c3_i92] = (*(real_T (*)[10])c3_inData)[c3_i92];\r\n  }\r\n\r\n  for (c3_i93 = 0; c3_i93 < 10; c3_i93++) {\r\n    c3_u[c3_i93] = c3_b_inData[c3_i93];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[10];\r\n  int32_T c3_i94;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  for (c3_i94 = 0; c3_i94 < 10; c3_i94++) {\r\n    (*(real_T (*)[10])c3_outData)[c3_i94] = c3_y[c3_i94];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i96;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i95 = 0; c3_i95 < 6; c3_i95++) {\r\n    c3_b_inData[c3_i95] = (*(real_T (*)[6])c3_inData)[c3_i95];\r\n  }\r\n\r\n  for (c3_i96 = 0; c3_i96 < 6; c3_i96++) {\r\n    c3_u[c3_i96] = c3_b_inData[c3_i96];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i97;\r\n  real_T c3_b_inData[22];\r\n  int32_T c3_i98;\r\n  real_T c3_u[22];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i97 = 0; c3_i97 < 22; c3_i97++) {\r\n    c3_b_inData[c3_i97] = (*(real_T (*)[22])c3_inData)[c3_i97];\r\n  }\r\n\r\n  for (c3_i98 = 0; c3_i98 < 22; c3_i98++) {\r\n    c3_u[c3_i98] = c3_b_inData[c3_i98];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 22), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i99;\r\n  int32_T c3_i100;\r\n  int32_T c3_i101;\r\n  real_T c3_b_inData[48];\r\n  int32_T c3_i102;\r\n  int32_T c3_i103;\r\n  int32_T c3_i104;\r\n  real_T c3_u[48];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i99 = 0;\r\n  for (c3_i100 = 0; c3_i100 < 4; c3_i100++) {\r\n    for (c3_i101 = 0; c3_i101 < 12; c3_i101++) {\r\n      c3_b_inData[c3_i101 + c3_i99] = (*(real_T (*)[48])c3_inData)[c3_i101 +\r\n        c3_i99];\r\n    }\r\n\r\n    c3_i99 += 12;\r\n  }\r\n\r\n  c3_i102 = 0;\r\n  for (c3_i103 = 0; c3_i103 < 4; c3_i103++) {\r\n    for (c3_i104 = 0; c3_i104 < 12; c3_i104++) {\r\n      c3_u[c3_i104 + c3_i102] = c3_b_inData[c3_i104 + c3_i102];\r\n    }\r\n\r\n    c3_i102 += 12;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 12, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i105;\r\n  int32_T c3_i106;\r\n  int32_T c3_i107;\r\n  real_T c3_b_inData[16];\r\n  int32_T c3_i108;\r\n  int32_T c3_i109;\r\n  int32_T c3_i110;\r\n  real_T c3_u[16];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i105 = 0;\r\n  for (c3_i106 = 0; c3_i106 < 4; c3_i106++) {\r\n    for (c3_i107 = 0; c3_i107 < 4; c3_i107++) {\r\n      c3_b_inData[c3_i107 + c3_i105] = (*(real_T (*)[16])c3_inData)[c3_i107 +\r\n        c3_i105];\r\n    }\r\n\r\n    c3_i105 += 4;\r\n  }\r\n\r\n  c3_i108 = 0;\r\n  for (c3_i109 = 0; c3_i109 < 4; c3_i109++) {\r\n    for (c3_i110 = 0; c3_i110 < 4; c3_i110++) {\r\n      c3_u[c3_i110 + c3_i108] = c3_b_inData[c3_i110 + c3_i108];\r\n    }\r\n\r\n    c3_i108 += 4;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 4, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i111;\r\n  real_T c3_b_inData[10];\r\n  int32_T c3_i112;\r\n  real_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i111 = 0; c3_i111 < 10; c3_i111++) {\r\n    c3_b_inData[c3_i111] = (*(real_T (*)[10])c3_inData)[c3_i111];\r\n  }\r\n\r\n  for (c3_i112 = 0; c3_i112 < 10; c3_i112++) {\r\n    c3_u[c3_i112] = c3_b_inData[c3_i112];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i113;\r\n  real_T c3_b_inData[4];\r\n  int32_T c3_i114;\r\n  real_T c3_u[4];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i113 = 0; c3_i113 < 4; c3_i113++) {\r\n    c3_b_inData[c3_i113] = (*(real_T (*)[4])c3_inData)[c3_i113];\r\n  }\r\n\r\n  for (c3_i114 = 0; c3_i114 < 4; c3_i114++) {\r\n    c3_u[c3_i114] = c3_b_inData[c3_i114];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i115;\r\n  int32_T c3_i116;\r\n  int32_T c3_i117;\r\n  real_T c3_b_inData[264];\r\n  int32_T c3_i118;\r\n  int32_T c3_i119;\r\n  int32_T c3_i120;\r\n  real_T c3_u[264];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i115 = 0;\r\n  for (c3_i116 = 0; c3_i116 < 22; c3_i116++) {\r\n    for (c3_i117 = 0; c3_i117 < 12; c3_i117++) {\r\n      c3_b_inData[c3_i117 + c3_i115] = (*(real_T (*)[264])c3_inData)[c3_i117 +\r\n        c3_i115];\r\n    }\r\n\r\n    c3_i115 += 12;\r\n  }\r\n\r\n  c3_i118 = 0;\r\n  for (c3_i119 = 0; c3_i119 < 22; c3_i119++) {\r\n    for (c3_i120 = 0; c3_i120 < 12; c3_i120++) {\r\n      c3_u[c3_i120 + c3_i118] = c3_b_inData[c3_i120 + c3_i118];\r\n    }\r\n\r\n    c3_i118 += 12;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 12, 22), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i121;\r\n  real_T c3_b_inData[12];\r\n  int32_T c3_i122;\r\n  real_T c3_u[12];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i121 = 0; c3_i121 < 12; c3_i121++) {\r\n    c3_b_inData[c3_i121] = (*(real_T (*)[12])c3_inData)[c3_i121];\r\n  }\r\n\r\n  for (c3_i122 = 0; c3_i122 < 12; c3_i122++) {\r\n    c3_u[c3_i122] = c3_b_inData[c3_i122];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 12), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i123;\r\n  int32_T c3_i124;\r\n  int32_T c3_i125;\r\n  real_T c3_b_inData[72];\r\n  int32_T c3_i126;\r\n  int32_T c3_i127;\r\n  int32_T c3_i128;\r\n  real_T c3_u[72];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i123 = 0;\r\n  for (c3_i124 = 0; c3_i124 < 6; c3_i124++) {\r\n    for (c3_i125 = 0; c3_i125 < 12; c3_i125++) {\r\n      c3_b_inData[c3_i125 + c3_i123] = (*(real_T (*)[72])c3_inData)[c3_i125 +\r\n        c3_i123];\r\n    }\r\n\r\n    c3_i123 += 12;\r\n  }\r\n\r\n  c3_i126 = 0;\r\n  for (c3_i127 = 0; c3_i127 < 6; c3_i127++) {\r\n    for (c3_i128 = 0; c3_i128 < 12; c3_i128++) {\r\n      c3_u[c3_i128 + c3_i126] = c3_b_inData[c3_i128 + c3_i126];\r\n    }\r\n\r\n    c3_i126 += 12;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 12, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i129;\r\n  int32_T c3_i130;\r\n  int32_T c3_i131;\r\n  real_T c3_b_inData[66];\r\n  int32_T c3_i132;\r\n  int32_T c3_i133;\r\n  int32_T c3_i134;\r\n  real_T c3_u[66];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i129 = 0;\r\n  for (c3_i130 = 0; c3_i130 < 3; c3_i130++) {\r\n    for (c3_i131 = 0; c3_i131 < 22; c3_i131++) {\r\n      c3_b_inData[c3_i131 + c3_i129] = (*(real_T (*)[66])c3_inData)[c3_i131 +\r\n        c3_i129];\r\n    }\r\n\r\n    c3_i129 += 22;\r\n  }\r\n\r\n  c3_i132 = 0;\r\n  for (c3_i133 = 0; c3_i133 < 3; c3_i133++) {\r\n    for (c3_i134 = 0; c3_i134 < 22; c3_i134++) {\r\n      c3_u[c3_i134 + c3_i132] = c3_b_inData[c3_i134 + c3_i132];\r\n    }\r\n\r\n    c3_i132 += 22;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 22, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i135;\r\n  int32_T c3_i136;\r\n  int32_T c3_i137;\r\n  real_T c3_b_inData[30];\r\n  int32_T c3_i138;\r\n  int32_T c3_i139;\r\n  int32_T c3_i140;\r\n  real_T c3_u[30];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i135 = 0;\r\n  for (c3_i136 = 0; c3_i136 < 3; c3_i136++) {\r\n    for (c3_i137 = 0; c3_i137 < 10; c3_i137++) {\r\n      c3_b_inData[c3_i137 + c3_i135] = (*(real_T (*)[30])c3_inData)[c3_i137 +\r\n        c3_i135];\r\n    }\r\n\r\n    c3_i135 += 10;\r\n  }\r\n\r\n  c3_i138 = 0;\r\n  for (c3_i139 = 0; c3_i139 < 3; c3_i139++) {\r\n    for (c3_i140 = 0; c3_i140 < 10; c3_i140++) {\r\n      c3_u[c3_i140 + c3_i138] = c3_b_inData[c3_i140 + c3_i138];\r\n    }\r\n\r\n    c3_i138 += 10;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 10, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i142;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i141 = 0; c3_i141 < 3; c3_i141++) {\r\n    c3_b_inData[c3_i141] = (*(real_T (*)[3])c3_inData)[c3_i141];\r\n  }\r\n\r\n  for (c3_i142 = 0; c3_i142 < 3; c3_i142++) {\r\n    c3_u[c3_i142] = c3_b_inData[c3_i142];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i143;\r\n  int32_T c3_i144;\r\n  int32_T c3_i145;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i146;\r\n  int32_T c3_i147;\r\n  int32_T c3_i148;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i143 = 0;\r\n  for (c3_i144 = 0; c3_i144 < 3; c3_i144++) {\r\n    for (c3_i145 = 0; c3_i145 < 6; c3_i145++) {\r\n      c3_b_inData[c3_i145 + c3_i143] = (*(real_T (*)[18])c3_inData)[c3_i145 +\r\n        c3_i143];\r\n    }\r\n\r\n    c3_i143 += 6;\r\n  }\r\n\r\n  c3_i146 = 0;\r\n  for (c3_i147 = 0; c3_i147 < 3; c3_i147++) {\r\n    for (c3_i148 = 0; c3_i148 < 6; c3_i148++) {\r\n      c3_u[c3_i148 + c3_i146] = c3_b_inData[c3_i148 + c3_i146];\r\n    }\r\n\r\n    c3_i146 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i149;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i150;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i149 = 0; c3_i149 < 6; c3_i149++) {\r\n    c3_b_inData[c3_i149] = (*(char_T (*)[6])c3_inData)[c3_i149];\r\n  }\r\n\r\n  for (c3_i150 = 0; c3_i150 < 6; c3_i150++) {\r\n    c3_u[c3_i150] = c3_b_inData[c3_i150];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d34;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d34, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d34;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[10])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[10])\r\n{\r\n  real_T c3_dv18[10];\r\n  int32_T c3_i151;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv18, 1, 0, 0U, 1, 0U, 1, 10);\r\n  for (c3_i151 = 0; c3_i151 < 10; c3_i151++) {\r\n    c3_y[c3_i151] = c3_dv18[c3_i151];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[16])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[16])\r\n{\r\n  boolean_T c3_bv2[16];\r\n  int32_T c3_i152;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 16);\r\n  for (c3_i152 = 0; c3_i152 < 16; c3_i152++) {\r\n    c3_y[c3_i152] = c3_bv2[c3_i152];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i153;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i153, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i153;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16])\r\n{\r\n  real_T c3_dv19[16];\r\n  int32_T c3_i154;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv19, 1, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i154 = 0; c3_i154 < 16; c3_i154++) {\r\n    c3_y[c3_i154] = c3_dv19[c3_i154];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[16];\r\n  int32_T c3_i155;\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i155 = 0;\r\n  for (c3_i156 = 0; c3_i156 < 4; c3_i156++) {\r\n    for (c3_i157 = 0; c3_i157 < 4; c3_i157++) {\r\n      (*(real_T (*)[16])c3_outData)[c3_i157 + c3_i155] = c3_y[c3_i157 + c3_i155];\r\n    }\r\n\r\n    c3_i155 += 4;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv20[18];\r\n  int32_T c3_i158;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv20, 1, 0, 0U, 1, 0U, 2, 6, 3);\r\n  for (c3_i158 = 0; c3_i158 < 18; c3_i158++) {\r\n    c3_y[c3_i158] = c3_dv20[c3_i158];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i159;\r\n  int32_T c3_i160;\r\n  int32_T c3_i161;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i159 = 0;\r\n  for (c3_i160 = 0; c3_i160 < 3; c3_i160++) {\r\n    for (c3_i161 = 0; c3_i161 < 6; c3_i161++) {\r\n      (*(real_T (*)[18])c3_outData)[c3_i161 + c3_i159] = c3_y[c3_i161 + c3_i159];\r\n    }\r\n\r\n    c3_i159 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv21[3];\r\n  int32_T c3_i162;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv21, 1, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i162 = 0; c3_i162 < 3; c3_i162++) {\r\n    c3_y[c3_i162] = c3_dv21[c3_i162];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i163;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  for (c3_i163 = 0; c3_i163 < 3; c3_i163++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i163] = c3_y[c3_i163];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[30])\r\n{\r\n  real_T c3_dv22[30];\r\n  int32_T c3_i164;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 2, 10,\r\n                3);\r\n  for (c3_i164 = 0; c3_i164 < 30; c3_i164++) {\r\n    c3_y[c3_i164] = c3_dv22[c3_i164];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[30];\r\n  int32_T c3_i165;\r\n  int32_T c3_i166;\r\n  int32_T c3_i167;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i165 = 0;\r\n  for (c3_i166 = 0; c3_i166 < 3; c3_i166++) {\r\n    for (c3_i167 = 0; c3_i167 < 10; c3_i167++) {\r\n      (*(real_T (*)[30])c3_outData)[c3_i167 + c3_i165] = c3_y[c3_i167 + c3_i165];\r\n    }\r\n\r\n    c3_i165 += 10;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[66])\r\n{\r\n  real_T c3_dv23[66];\r\n  int32_T c3_i168;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 22,\r\n                3);\r\n  for (c3_i168 = 0; c3_i168 < 66; c3_i168++) {\r\n    c3_y[c3_i168] = c3_dv23[c3_i168];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[66];\r\n  int32_T c3_i169;\r\n  int32_T c3_i170;\r\n  int32_T c3_i171;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kv);\r\n  c3_i169 = 0;\r\n  for (c3_i170 = 0; c3_i170 < 3; c3_i170++) {\r\n    for (c3_i171 = 0; c3_i171 < 22; c3_i171++) {\r\n      (*(real_T (*)[66])c3_outData)[c3_i171 + c3_i169] = c3_y[c3_i171 + c3_i169];\r\n    }\r\n\r\n    c3_i169 += 22;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12])\r\n{\r\n  real_T c3_dv24[12];\r\n  int32_T c3_i172;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 1, 12);\r\n  for (c3_i172 = 0; c3_i172 < 12; c3_i172++) {\r\n    c3_y[c3_i172] = c3_dv24[c3_i172];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mlim;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[12];\r\n  int32_T c3_i173;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mlim = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mlim), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mlim);\r\n  for (c3_i173 = 0; c3_i173 < 12; c3_i173++) {\r\n    (*(real_T (*)[12])c3_outData)[c3_i173] = c3_y[c3_i173];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[72])\r\n{\r\n  real_T c3_dv25[72];\r\n  int32_T c3_i174;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 12,\r\n                6);\r\n  for (c3_i174 = 0; c3_i174 < 72; c3_i174++) {\r\n    c3_y[c3_i174] = c3_dv25[c3_i174];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[72];\r\n  int32_T c3_i175;\r\n  int32_T c3_i176;\r\n  int32_T c3_i177;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  c3_i175 = 0;\r\n  for (c3_i176 = 0; c3_i176 < 6; c3_i176++) {\r\n    for (c3_i177 = 0; c3_i177 < 12; c3_i177++) {\r\n      (*(real_T (*)[72])c3_outData)[c3_i177 + c3_i175] = c3_y[c3_i177 + c3_i175];\r\n    }\r\n\r\n    c3_i175 += 12;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[264])\r\n{\r\n  real_T c3_dv26[264];\r\n  int32_T c3_i178;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 12,\r\n                22);\r\n  for (c3_i178 = 0; c3_i178 < 264; c3_i178++) {\r\n    c3_y[c3_i178] = c3_dv26[c3_i178];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[264];\r\n  int32_T c3_i179;\r\n  int32_T c3_i180;\r\n  int32_T c3_i181;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mv);\r\n  c3_i179 = 0;\r\n  for (c3_i180 = 0; c3_i180 < 22; c3_i180++) {\r\n    for (c3_i181 = 0; c3_i181 < 12; c3_i181++) {\r\n      (*(real_T (*)[264])c3_outData)[c3_i181 + c3_i179] = c3_y[c3_i181 + c3_i179];\r\n    }\r\n\r\n    c3_i179 += 12;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4])\r\n{\r\n  real_T c3_dv27[4];\r\n  int32_T c3_i182;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i182 = 0; c3_i182 < 4; c3_i182++) {\r\n    c3_y[c3_i182] = c3_dv27[c3_i182];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[4];\r\n  int32_T c3_i183;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i183 = 0; c3_i183 < 4; c3_i183++) {\r\n    (*(real_T (*)[4])c3_outData)[c3_i183] = c3_y[c3_i183];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[10])\r\n{\r\n  real_T c3_dv28[10];\r\n  int32_T c3_i184;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 1,\r\n                10);\r\n  for (c3_i184 = 0; c3_i184 < 10; c3_i184++) {\r\n    c3_y[c3_i184] = c3_dv28[c3_i184];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[10];\r\n  int32_T c3_i185;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i185 = 0; c3_i185 < 10; c3_i185++) {\r\n    (*(real_T (*)[10])c3_outData)[c3_i185] = c3_y[c3_i185];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[48])\r\n{\r\n  real_T c3_dv29[48];\r\n  int32_T c3_i186;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 2, 12,\r\n                4);\r\n  for (c3_i186 = 0; c3_i186 < 48; c3_i186++) {\r\n    c3_y[c3_i186] = c3_dv29[c3_i186];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ac;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[48];\r\n  int32_T c3_i187;\r\n  int32_T c3_i188;\r\n  int32_T c3_i189;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ac = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ac), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ac);\r\n  c3_i187 = 0;\r\n  for (c3_i188 = 0; c3_i188 < 4; c3_i188++) {\r\n    for (c3_i189 = 0; c3_i189 < 12; c3_i189++) {\r\n      (*(real_T (*)[48])c3_outData)[c3_i189 + c3_i187] = c3_y[c3_i189 + c3_i187];\r\n    }\r\n\r\n    c3_i187 += 12;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(246230727U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3387120738U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(981461402U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(860506974U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"K8wxaBjamtyqnvKwti3efD\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(22);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(16);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(22);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(22);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(10);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(16);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 22;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 16;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 10;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 10;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 22;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 12;\r\n          _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 12;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 12;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 12;\r\n          dimVector[1]= 22;\r\n          _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 12;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 16;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_old_u;\r\n          real_T *c3_umin;\r\n          real_T *c3_umax;\r\n          real_T *c3_ymin;\r\n          real_T *c3_ymax;\r\n          real_T *c3_switch_in;\r\n          real_T *c3_ywt;\r\n          real_T *c3_duwt;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_u;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[10];\r\n          real_T (*c3_vseq)[22];\r\n          real_T (*c3_x)[6];\r\n          boolean_T (*c3_iA)[16];\r\n          real_T (*c3_useq)[10];\r\n          boolean_T (*c3_iAout)[16];\r\n          c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S,\r\n            5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[16])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[22])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, &chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, &chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"o0M1hEmlLN4wqMqd3iZhdE\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(1798046702U));\r\n  ssSetChecksum1(S,(436890030U));\r\n  ssSetChecksum2(S,(1950775435U));\r\n  ssSetChecksum3(S,(2111874986U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[16];\r\n  real_T c3_Kx[18];\r\n  real_T c3_Ku1[3];\r\n  real_T c3_Kut[30];\r\n  real_T c3_Kr[30];\r\n  real_T c3_Kv[66];\r\n  real_T c3_Mlim[12];\r\n  real_T c3_Mx[72];\r\n  real_T c3_Mu1[12];\r\n  real_T c3_Mv[264];\r\n  real_T c3_z_degrees[4];\r\n  real_T c3_utarget[10];\r\n  real_T c3_p;\r\n  real_T c3_uoff;\r\n  real_T c3_yoff;\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[16];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[10];\r\n  real_T c3_Linv[16];\r\n  real_T c3_Ac[48];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (10.0)\r\n#define c4_b_ny                        (1.0)\r\n#define c4_b_nv                        (2.0)\r\n#define c4_b_yoff                      (0.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (0.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic real_T c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[22]);\r\nstatic void c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[22]);\r\nstatic void c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier, real_T c4_y[2]);\r\nstatic void c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2]);\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  real_T c4_d7;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_yoff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d7 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i0;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_b_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_b_u[2];\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i2;\r\n  real_T c4_c_u[22];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T (*c4_vseq)[22];\r\n  real_T (*c4_v)[2];\r\n  real_T (*c4_rseq)[10];\r\n  c4_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[22])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i0 = 0; c4_i0 < 10; c4_i0++) {\r\n    c4_u[c4_i0] = (*c4_rseq)[c4_i0];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  for (c4_i1 = 0; c4_i1 < 2; c4_i1++) {\r\n    c4_b_u[c4_i1] = (*c4_v)[c4_i1];\r\n  }\r\n\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", c4_b_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i2 = 0; c4_i2 < 22; c4_i2++) {\r\n    c4_c_u[c4_i2] = (*c4_vseq)[c4_i2];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 22), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv0[10];\r\n  int32_T c4_i3;\r\n  real_T c4_dv1[2];\r\n  int32_T c4_i4;\r\n  real_T c4_dv2[22];\r\n  int32_T c4_i5;\r\n  real_T (*c4_rseq)[10];\r\n  real_T (*c4_v)[2];\r\n  real_T (*c4_vseq)[22];\r\n  c4_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[22])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)),\r\n                        \"rseq\", c4_dv0);\r\n  for (c4_i3 = 0; c4_i3 < 10; c4_i3++) {\r\n    (*c4_rseq)[c4_i3] = c4_dv0[c4_i3];\r\n  }\r\n\r\n  c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)), \"v\",\r\n                        c4_dv1);\r\n  for (c4_i4 = 0; c4_i4 < 2; c4_i4++) {\r\n    (*c4_v)[c4_i4] = c4_dv1[c4_i4];\r\n  }\r\n\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv2);\r\n  for (c4_i5 = 0; c4_i5 < 22; c4_i5++) {\r\n    (*c4_vseq)[c4_i5] = c4_dv2[c4_i5];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_j_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i6;\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_hoistedGlobal;\r\n  real_T c4_ref;\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff;\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[10];\r\n  real_T c4_vseq[22];\r\n  real_T c4_v[2];\r\n  int32_T c4_i9;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  int32_T c4_i12;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T c4_f_u;\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv3[10];\r\n  int32_T c4_i13;\r\n  real_T c4_dv4[22];\r\n  int32_T c4_i14;\r\n  real_T c4_dv5[2];\r\n  int32_T c4_i15;\r\n  int32_T c4_i16;\r\n  int32_T c4_i17;\r\n  int32_T c4_i18;\r\n  real_T *c4_b_ref;\r\n  real_T *c4_b_md;\r\n  real_T (*c4_c_rseq)[10];\r\n  real_T (*c4_c_vseq)[22];\r\n  real_T (*c4_c_v)[2];\r\n  c4_c_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[22])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i6 = 0; c4_i6 < 10; c4_i6++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i6], 0U);\r\n  }\r\n\r\n  for (c4_i7 = 0; c4_i7 < 22; c4_i7++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i7], 1U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_ref, 2U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  for (c4_i8 = 0; c4_i8 < 2; c4_i8++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_v)[c4_i8], 4U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff, 8U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_ref;\r\n  c4_b_hoistedGlobal = *c4_b_md;\r\n  c4_ref = c4_hoistedGlobal;\r\n  c4_md = c4_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_yoff, 4U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_d_sf_marshallOut,\r\n    c4_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_d_sf_marshallOut,\r\n    c4_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_ref, 11U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  c4_c_yoff = c4_b_yoff;\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i9 = 0; c4_i9 < 6; c4_i9++) {\r\n    c4_DataType[c4_i9] = c4_cv0[c4_i9];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i10 = 0; c4_i10 < 10; c4_i10++) {\r\n    c4_rseq[c4_i10] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i11 = 0; c4_i11 < 22; c4_i11++) {\r\n    c4_vseq[c4_i11] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  for (c4_i12 = 0; c4_i12 < 2; c4_i12++) {\r\n    c4_v[c4_i12] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  c4_u = c4_ref;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_f_u = c4_b_yoff;\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", &c4_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv3);\r\n  for (c4_i13 = 0; c4_i13 < 10; c4_i13++) {\r\n    c4_rseq[c4_i13] = c4_dv3[c4_i13];\r\n  }\r\n\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv4);\r\n  for (c4_i14 = 0; c4_i14 < 22; c4_i14++) {\r\n    c4_vseq[c4_i14] = c4_dv4[c4_i14];\r\n  }\r\n\r\n  c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\", c4_dv5);\r\n  for (c4_i15 = 0; c4_i15 < 2; c4_i15++) {\r\n    c4_v[c4_i15] = c4_dv5[c4_i15];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i16 = 0; c4_i16 < 10; c4_i16++) {\r\n    (*c4_c_rseq)[c4_i16] = c4_rseq[c4_i16];\r\n  }\r\n\r\n  for (c4_i17 = 0; c4_i17 < 22; c4_i17++) {\r\n    (*c4_c_vseq)[c4_i17] = c4_vseq[c4_i17];\r\n  }\r\n\r\n  for (c4_i18 = 0; c4_i18 < 2; c4_i18++) {\r\n    (*c4_c_v)[c4_i18] = c4_v[c4_i18];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i19;\r\n  real_T c4_b_inData[2];\r\n  int32_T c4_i20;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i19 = 0; c4_i19 < 2; c4_i19++) {\r\n    c4_b_inData[c4_i19] = (*(real_T (*)[2])c4_inData)[c4_i19];\r\n  }\r\n\r\n  for (c4_i20 = 0; c4_i20 < 2; c4_i20++) {\r\n    c4_u[c4_i20] = c4_b_inData[c4_i20];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[2];\r\n  int32_T c4_i21;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_v);\r\n  for (c4_i21 = 0; c4_i21 < 2; c4_i21++) {\r\n    (*(real_T (*)[2])c4_outData)[c4_i21] = c4_y[c4_i21];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i22;\r\n  real_T c4_b_inData[22];\r\n  int32_T c4_i23;\r\n  real_T c4_u[22];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i22 = 0; c4_i22 < 22; c4_i22++) {\r\n    c4_b_inData[c4_i22] = (*(real_T (*)[22])c4_inData)[c4_i22];\r\n  }\r\n\r\n  for (c4_i23 = 0; c4_i23 < 22; c4_i23++) {\r\n    c4_u[c4_i23] = c4_b_inData[c4_i23];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 22), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[22];\r\n  int32_T c4_i24;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i24 = 0; c4_i24 < 22; c4_i24++) {\r\n    (*(real_T (*)[22])c4_outData)[c4_i24] = c4_y[c4_i24];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i25;\r\n  real_T c4_b_inData[10];\r\n  int32_T c4_i26;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i25 = 0; c4_i25 < 10; c4_i25++) {\r\n    c4_b_inData[c4_i25] = (*(real_T (*)[10])c4_inData)[c4_i25];\r\n  }\r\n\r\n  for (c4_i26 = 0; c4_i26 < 10; c4_i26++) {\r\n    c4_u[c4_i26] = c4_b_inData[c4_i26];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[10];\r\n  int32_T c4_i27;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i27 = 0; c4_i27 < 10; c4_i27++) {\r\n    (*(real_T (*)[10])c4_outData)[c4_i27] = c4_y[c4_i27];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic real_T c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d8;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d8, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d8;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_nargout;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_nargout = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_nargout), &c4_thisId);\r\n  sf_mex_destroy(&c4_nargout);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i28;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i29;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i28 = 0; c4_i28 < 6; c4_i28++) {\r\n    c4_b_inData[c4_i28] = (*(char_T (*)[6])c4_inData)[c4_i28];\r\n  }\r\n\r\n  for (c4_i29 = 0; c4_i29 < 6; c4_i29++) {\r\n    c4_u[c4_i29] = c4_b_inData[c4_i29];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10])\r\n{\r\n  real_T c4_dv6[10];\r\n  int32_T c4_i30;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv6, 1, 0, 0U, 1, 0U, 1, 10);\r\n  for (c4_i30 = 0; c4_i30 < 10; c4_i30++) {\r\n    c4_y[c4_i30] = c4_dv6[c4_i30];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[22])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[22])\r\n{\r\n  real_T c4_dv7[22];\r\n  int32_T c4_i31;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv7, 1, 0, 0U, 1, 0U, 1, 22);\r\n  for (c4_i31 = 0; c4_i31 < 22; c4_i31++) {\r\n    c4_y[c4_i31] = c4_dv7[c4_i31];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier, real_T c4_y[2])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_v);\r\n}\r\n\r\nstatic void c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2])\r\n{\r\n  real_T c4_dv8[2];\r\n  int32_T c4_i32;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv8, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i32 = 0; c4_i32 < 2; c4_i32++) {\r\n    c4_y[c4_i32] = c4_dv8[c4_i32];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i33;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i33, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i33;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_k_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1220731787U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3834945342U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(419509243U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3998385105U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"cvpcgBd8lFaroy8z35qPTH\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(22);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 22;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)\r\n            c4_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_e_sf_marshallOut,(MexInFcnForType)c4_f_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_ref;\r\n          real_T *c4_md;\r\n          real_T (*c4_rseq)[10];\r\n          real_T (*c4_vseq)[22];\r\n          real_T (*c4_v)[2];\r\n          c4_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[22])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, &chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"GD8JDlchWKMURaoIGLPbgC\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(1190664269U));\r\n  ssSetChecksum1(S,(1166611586U));\r\n  ssSetChecksum2(S,(3158918617U));\r\n  ssSetChecksum3(S,(259070073U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff;\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1579262872U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2134056235U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2199968077U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1649811663U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"K8wxaBjamtyqnvKwti3efD\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"cvpcgBd8lFaroy8z35qPTH\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"o0M1hEmlLN4wqMqd3iZhdE\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"GD8JDlchWKMURaoIGLPbgC\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"o0M1hEmlLN4wqMqd3iZhdE\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"GD8JDlchWKMURaoIGLPbgC\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_miso\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_miso/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_misonoise_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_misonoise_sfun.h\"\r\n#include \"mpc_misonoise_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_misonoiseMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_misonoise_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_misonoise_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_misonoise_method_dispatcher(SimStruct *simstructPtr,\r\n  unsigned int chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_misonoise_process_check_sum_call( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(96904281U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3635612654U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3782476457U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1009753451U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(4097033892U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2958989449U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2071990696U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(189482725U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1362349678U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2900748458U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3093618719U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2690152989U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_misonoise_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_misonoise_get_eml_resolved_functions_info( int nlhs, mxArray\r\n  * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_misonoise_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_misonoise_updateBuildInfo_args_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_misonoise_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpc_misonoiseMachineNumber_ = sf_debug_initialize_machine(debugInstance,\r\n    \"mpc_misonoise\",\"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,\r\n    _mpc_misonoiseMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,\r\n    _mpc_misonoiseMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_misonoise_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_misonoise_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpc_misonoise\",\r\n      \"mpc_misonoise\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_misonoise_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun.h",
    "content": "#ifndef __mpc_misonoise_sfun_h__\r\n#define __mpc_misonoise_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_misonoiseMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_misonoise_initializer(void);\r\nextern void mpc_misonoise_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_misonoise_optimization_info(void);\r\nextern void unload_mpc_misonoise_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_misonoise\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_misonoise_sfun.c\r\nMACHINE_REG = mpc_misonoise_sfun_registry.c\r\nMAKEFILE    = mpc_misonoise_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_misonoise_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_misonoise\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun.mol",
    "content": "mpc_misonoise_sfun.obj\r\nmpc_misonoise_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_misonoiseMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_misonoiseMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_misonoiseMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/mpc_misonoise_sfun_registry.c",
    "content": "#include \"mpc_misonoise_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_misonoise_process_check_sum_call( int nlhs, mxArray\r\n    * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_misonoise_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_misonoise_autoinheritance_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_misonoise\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_misonoise_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_misonoise_third_party_uses_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_misonoise\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_misonoise_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_misonoise_updateBuildInfo_args_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_misonoise\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_misonoise_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_misonoise_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_misonoise\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_misonoise_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_misonoise_method_dispatcher(SimStruct *S, unsigned\r\n  int chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_misonoise\")) {\r\n    return(sf_mpc_misonoise_method_dispatcher(simstructPtr,chartFileNumber,\r\n            specsCksum,method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_misonoise_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_misonoise_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_misonoise_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_misonoise_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_misonoise_debug_initialize(struct SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_misonoise_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_misonoise_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_misonoise_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (40.0)\r\n#define c3_b_nu                        (1.0)\r\n#define c3_b_isQP                      (TRUE)\r\n#define c3_b_ny                        (1.0)\r\n#define c3_b_degrees                   (4.0)\r\n#define c3_b_uoff                      (0.0)\r\n#define c3_b_yoff                      (0.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (6.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier);\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[40]);\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[40]);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[16]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[16]);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16]);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[120]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[246]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[72]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[984]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[40]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[48]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[16];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[18];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[3];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[120];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[120];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[246];\r\n  int32_T c3_i5;\r\n  real_T c3_dv6[12];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[72];\r\n  int32_T c3_i7;\r\n  real_T c3_dv8[12];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[984];\r\n  int32_T c3_i9;\r\n  real_T c3_dv10[4];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[40];\r\n  int32_T c3_i11;\r\n  real_T c3_d4;\r\n  real_T c3_d5;\r\n  real_T c3_d6;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_d17;\r\n  real_T c3_d18;\r\n  real_T c3_dv12[16];\r\n  int32_T c3_i12;\r\n  real_T c3_d19;\r\n  real_T c3_dv13[40];\r\n  int32_T c3_i13;\r\n  real_T c3_dv14[16];\r\n  int32_T c3_i14;\r\n  real_T c3_dv15[48];\r\n  int32_T c3_i15;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  real_T c3_d32;\r\n  real_T c3_d33;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i0 = 0; c3_i0 < 16; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 6, 3);\r\n  for (c3_i1 = 0; c3_i1 < 18; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i2 = 0; c3_i2 < 3; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 40, 3);\r\n  for (c3_i3 = 0; c3_i3 < 120; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 40, 3);\r\n  for (c3_i4 = 0; c3_i4 < 120; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 82, 3);\r\n  for (c3_i5 = 0; c3_i5 < 246; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 1, 12);\r\n  for (c3_i6 = 0; c3_i6 < 12; c3_i6++) {\r\n    chartInstance->c3_Mlim[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 12, 6);\r\n  for (c3_i7 = 0; c3_i7 < 72; c3_i7++) {\r\n    chartInstance->c3_Mx[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 1, 12);\r\n  for (c3_i8 = 0; c3_i8 < 12; c3_i8++) {\r\n    chartInstance->c3_Mu1[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 2, 12, 82);\r\n  for (c3_i9 = 0; c3_i9 < 984; c3_i9++) {\r\n    chartInstance->c3_Mv[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i10 = 0; c3_i10 < 4; c3_i10++) {\r\n    chartInstance->c3_z_degrees[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 40);\r\n  for (c3_i11 = 0; c3_i11 < 40; c3_i11++) {\r\n    chartInstance->c3_utarget[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_uoff = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_yoff = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d7;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d9 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i12 = 0; c3_i12 < 16; c3_i12++) {\r\n    chartInstance->c3_H[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv13, 0, 0, 0U, 1, 0U, 2, 1, 40);\r\n  for (c3_i13 = 0; c3_i13 < 40; c3_i13++) {\r\n    chartInstance->c3_blocking_moves[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i14 = 0; c3_i14 < 16; c3_i14++) {\r\n    chartInstance->c3_Linv[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv15, 0, 0, 0U, 1, 0U, 2, 12, 4);\r\n  for (c3_i15 = 0; c3_i15 < 48; c3_i15++) {\r\n    chartInstance->c3_Ac[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d32, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d32;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d33, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d33;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i16;\r\n  boolean_T c3_b_u[16];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i17;\r\n  real_T c3_e_u[40];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_d_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_g_u;\r\n  real_T (*c3_useq)[40];\r\n  boolean_T (*c3_iAout)[16];\r\n  c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i16 = 0; c3_i16 < 16; c3_i16++) {\r\n    c3_b_u[c3_i16] = (*c3_iAout)[c3_i16];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 16),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  c3_c_hoistedGlobal = *c3_g_u;\r\n  c3_d_u = c3_c_hoistedGlobal;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i17 = 0; c3_i17 < 40; c3_i17++) {\r\n    c3_e_u[c3_i17] = (*c3_useq)[c3_i17];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 40), FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_d_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_d_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[16];\r\n  int32_T c3_i18;\r\n  real_T c3_dv16[40];\r\n  int32_T c3_i19;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T *c3_b_u;\r\n  boolean_T (*c3_iAout)[16];\r\n  real_T (*c3_useq)[40];\r\n  c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i18 = 0; c3_i18 < 16; c3_i18++) {\r\n    (*c3_iAout)[c3_i18] = c3_bv0[c3_i18];\r\n  }\r\n\r\n  *c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    2)), \"status\");\r\n  *c3_b_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)),\r\n    \"u\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv16);\r\n  for (c3_i19 = 0; c3_i19 < 40; c3_i19++) {\r\n    (*c3_useq)[c3_i19] = c3_dv16[c3_i19];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_t_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i20;\r\n  int32_T c3_i21;\r\n  int32_T c3_i22;\r\n  int32_T c3_i23;\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  real_T *c3_old_u;\r\n  real_T *c3_umin;\r\n  real_T *c3_umax;\r\n  real_T *c3_ymin;\r\n  real_T *c3_ymax;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_ywt;\r\n  real_T *c3_duwt;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_u;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[16];\r\n  real_T (*c3_useq)[40];\r\n  boolean_T (*c3_iA)[16];\r\n  real_T (*c3_x)[8];\r\n  real_T (*c3_vseq)[82];\r\n  real_T (*c3_rseq)[40];\r\n  c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[16])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[8])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[82])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[40])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i20 = 0; c3_i20 < 40; c3_i20++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i20], 0U);\r\n  }\r\n\r\n  for (c3_i21 = 0; c3_i21 < 82; c3_i21++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i21], 1U);\r\n  }\r\n\r\n  for (c3_i22 = 0; c3_i22 < 8; c3_i22++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i22], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_old_u, 3U);\r\n  for (c3_i23 = 0; c3_i23 < 16; c3_i23++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i23], 4U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_umin, 5U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_umax, 6U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymin, 7U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ymax, 8U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_ywt, 10U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_duwt, 11U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_u, 13U);\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i24 = 0; c3_i24 < 40; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i24], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i25 = 0; c3_i25 < 16; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i25], 21U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 18; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i26], 22U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i27], 23U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 120; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i28], 24U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 120; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i29], 25U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 246; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i30], 26U);\r\n  }\r\n\r\n  for (c3_i31 = 0; c3_i31 < 12; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim[c3_i31], 27U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 72; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i32], 28U);\r\n  }\r\n\r\n  for (c3_i33 = 0; c3_i33 < 12; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i33], 29U);\r\n  }\r\n\r\n  for (c3_i34 = 0; c3_i34 < 984; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv[c3_i34], 30U);\r\n  }\r\n\r\n  for (c3_i35 = 0; c3_i35 < 4; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i35], 31U);\r\n  }\r\n\r\n  for (c3_i36 = 0; c3_i36 < 40; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i36], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff, 34U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff, 35U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i37 = 0; c3_i37 < 16; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i37], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i38 = 0; c3_i38 < 40; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i38], 50U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 16; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i39], 51U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 48; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i40], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i41 = 0; c3_i41 < 16; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i41], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_hoistedGlobal;\r\n  real_T c3_d_hoistedGlobal;\r\n  real_T c3_e_hoistedGlobal;\r\n  real_T c3_f_hoistedGlobal;\r\n  real_T c3_g_hoistedGlobal;\r\n  real_T c3_h_hoistedGlobal;\r\n  real_T c3_i_hoistedGlobal;\r\n  int32_T c3_i42;\r\n  real_T c3_rseq[40];\r\n  int32_T c3_i43;\r\n  real_T c3_vseq[82];\r\n  int32_T c3_i44;\r\n  real_T c3_x[8];\r\n  real_T c3_old_u;\r\n  int32_T c3_i45;\r\n  boolean_T c3_iA[16];\r\n  real_T c3_umin;\r\n  real_T c3_umax;\r\n  real_T c3_ymin;\r\n  real_T c3_ymax;\r\n  real_T c3_switch_in;\r\n  real_T c3_ywt;\r\n  real_T c3_duwt;\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[16];\r\n  real_T c3_c_Kx[18];\r\n  real_T c3_c_Ku1[3];\r\n  real_T c3_c_Kut[120];\r\n  real_T c3_c_Kr[120];\r\n  real_T c3_c_Kv[246];\r\n  real_T c3_c_Mlim[12];\r\n  real_T c3_c_Mx[72];\r\n  real_T c3_c_Mu1[12];\r\n  real_T c3_c_Mv[984];\r\n  real_T c3_c_z_degrees[4];\r\n  real_T c3_c_utarget[40];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff;\r\n  real_T c3_c_yoff;\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[16];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[40];\r\n  real_T c3_c_Linv[16];\r\n  real_T c3_c_Ac[48];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u;\r\n  real_T c3_cost;\r\n  real_T c3_useq[40];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[16];\r\n  int32_T c3_i46;\r\n  static real_T c3_d_Ac[48] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -0.0,\r\n    -0.0, 1.0, 0.0, 0.0, -0.0, -1.0, -1.0, -0.0, 1.0, 1.0, -0.0, -1.0, -0.0, 0.0,\r\n    1.0, 0.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, -0.0, -0.0, -1.0, 0.0, 0.0, 1.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i47;\r\n  static real_T c3_d_Linv[16] = { 9.5293659672860915, -0.86844807428262549,\r\n    -0.78546832875962258, 0.0, 0.0, 9.5786883232093754, -0.78330991247066073,\r\n    0.0, 0.0, 0.0, 9.61864258443344, 0.0, 0.0, 0.0, 0.0, 0.01 };\r\n\r\n  int32_T c3_i48;\r\n  static real_T c3_d_blocking_moves[40] = { 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i49;\r\n  static real_T c3_d_H[16] = { 0.011012146693774781, 0.00099841202336169253,\r\n    0.00098057063784741274, 0.0, 0.00099841202336169253, 0.010989552338308575,\r\n    0.00097648355484339843, 0.0, 0.00098057063784741274, 0.00097648355484339833,\r\n    0.01096827013212761, 0.0, 0.0, 0.0, 0.0, 10000.0 };\r\n\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  int32_T c3_i52;\r\n  int32_T c3_i53;\r\n  static real_T c3_d_Mu1[12] = { -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i54;\r\n  int32_T c3_i55;\r\n  static real_T c3_d_Mlim[12] = { 1.0, 1.0, 1.0, -0.0, -0.0, -0.0, 10.0, 10.0,\r\n    10.0, 10.0, 10.0, 10.0 };\r\n\r\n  int32_T c3_i56;\r\n  static real_T c3_d_Kv[246] = { 1.1061255464357791E-5, 0.0,\r\n    1.3403500298723072E-5, 0.0, 1.5961793848871613E-5, 0.0,\r\n    1.8618295520923505E-5, 0.0, 2.1262603414861315E-5, 0.0,\r\n    2.3795223951575392E-5, 0.0, 2.613029505276633E-5, 0.0, 2.8197530057740519E-5,\r\n    0.0, 2.9943382129068596E-5, 0.0, 3.1331458350854228E-5, 0.0,\r\n    3.23422382323457E-5, 0.0, 3.2972172296135653E-5, 0.0, 3.3232252482381542E-5,\r\n    0.0, 3.3146157086390476E-5, 0.0, 3.2748078918912833E-5, 0.0,\r\n    3.2080346571307281E-5, 0.0, 3.1190945471580006E-5, 0.0,\r\n    3.0131038347453542E-5, 0.0, 2.8952574377077262E-5, 0.0,\r\n    2.7706063374386463E-5, 0.0, 2.6438576519314784E-5, 0.0,\r\n    2.5192019094474745E-5, 0.0, 2.4001704089489622E-5, 0.0,\r\n    2.2895238985743267E-5, 0.0, 2.189172206496517E-5, 0.0, 2.10012296284969E-5,\r\n    0.0, 2.0224561898399027E-5, 0.0, 1.9553203311115292E-5, 0.0,\r\n    1.8969442505518306E-5, 0.0, 1.8446588527086805E-5, 0.0,\r\n    1.7949212478678648E-5, 0.0, 1.7433337792246337E-5, 0.0,\r\n    1.6846497112517279E-5, 0.0, 1.6127569007051586E-5, 0.0,\r\n    1.5206302781700433E-5, 0.0, 1.4002433923904835E-5, 0.0,\r\n    1.2424285358817545E-5, 0.0, 1.0366739923635002E-5, 0.0, 7.7084562715135E-6,\r\n    0.0, 4.3081827089326748E-6, 0.0, 0.0, 0.0, 9.054744782028578E-6, 0.0,\r\n    1.1059490251206105E-5, 0.0, 1.3401344262510862E-5, 0.0,\r\n    1.5959160460295327E-5, 0.0, 1.861507909285312E-5, 0.0, 2.1258674860744726E-5,\r\n    0.0, 2.3790425604741809E-5, 0.0, 2.612443433870918E-5, 0.0,\r\n    2.8190371765426331E-5, 0.0, 2.9934638971092331E-5, 0.0,\r\n    3.1320779433586986E-5, 0.0, 3.232919497334132E-5, 0.0, 3.2956241223612314E-5,\r\n    0.0, 3.3212794226461081E-5, 0.0, 3.312239071894024E-5, 0.0,\r\n    3.271905061215767E-5, 0.0, 3.2044891317371804E-5, 0.0, 3.1147640326631946E-5,\r\n    0.0, 3.0078145323971453E-5, 0.0, 2.888797069230881E-5, 0.0,\r\n    2.7627156255622968E-5, 0.0, 2.6342199146818573E-5, 0.0,\r\n    2.5074303505883644E-5, 0.0, 2.3857925944906004E-5, 0.0,\r\n    2.2719627963385685E-5, 0.0, 2.167723027789429E-5, 0.0, 2.0739248768165822E-5,\r\n    0.0, 1.9904577753005476E-5, 0.0, 1.916237379336408E-5, 0.0,\r\n    1.849208225456657E-5, 0.0, 1.7863539399938322E-5, 0.0, 1.7237074666636614E-5,\r\n    0.0, 1.6563530704428049E-5, 0.0, 1.5784112336388757E-5, 0.0,\r\n    1.4829969311260832E-5, 0.0, 1.3621410934273811E-5, 0.0, 1.206664265007239E-5,\r\n    0.0, 1.0059904557736209E-5, 0.0, 7.4788786918533082E-6, 0.0,\r\n    4.1812145978315121E-6, 0.0, 0.0, 0.0, 7.4119953730823676E-6, 0.0,\r\n    9.0530315921532247E-6, 0.0, 1.1057397756367098E-5, 0.0,\r\n    1.3398788483543063E-5, 0.0, 1.5956038824814807E-5, 0.0,\r\n    1.8611266318667245E-5, 0.0, 2.1254017927837854E-5, 0.0,\r\n    2.3784737614044789E-5, 0.0, 2.6117487011183457E-5, 0.0,\r\n    2.8181886280424566E-5, 0.0, 2.9924274776306851E-5, 0.0,\r\n    3.1308120577489886E-5, 0.0, 3.2313733411589171E-5, 0.0,\r\n    3.2937356429442777E-5, 0.0, 3.3189728286775115E-5, 0.0,\r\n    3.3094217916588249E-5, 0.0, 3.268464027365985E-5, 0.0, 3.2002862435021337E-5,\r\n    0.0, 3.1096306133806688E-5, 0.0, 3.0015445599266768E-5, 0.0,\r\n    2.8811389075618626E-5, 0.0, 2.7533619257773209E-5, 0.0,\r\n    2.6227952799654856E-5, 0.0, 2.4934762702348156E-5, 0.0,\r\n    2.3687490422591875E-5, 0.0, 2.2511457546342738E-5, 0.0, 2.142297035635068E-5,\r\n    0.0, 2.042869499870287E-5, 0.0, 1.9525266522426389E-5, 0.0,\r\n    1.8699082010133654E-5, 0.0, 1.7926216392695982E-5, 0.0,\r\n    1.7172389275500903E-5, 0.0, 1.6392901998346008E-5, 0.0,\r\n    1.5532455879014473E-5, 0.0, 1.4524754700759098E-5, 0.0, 1.32917864215927E-5,\r\n    0.0, 1.1742670110278372E-5, 0.0, 9.77194342577625E-6, 0.0,\r\n    7.2571525960329048E-6, 0.0, 4.0555897153900627E-6, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i57;\r\n  static real_T c3_d_Kr[120] = { -4.8214229598965584E-7, -1.8485694956578623E-6,\r\n    -3.9632907853728255E-6, -6.6748675532157314E-6, -9.823628770824104E-6,\r\n    -1.3248512065079052E-5, -1.6793306561057088E-5, -2.0312117582142232E-5,\r\n    -2.3673919935732017E-5, -2.6766113772986577E-5, -2.9497043036835796E-5,\r\n    -3.1797479675288924E-5, -3.362111573190241E-5, -3.4944139057282E-5,\r\n    -3.576399594340853E-5, -3.6097464998909966E-5, -3.5978180883343419E-5,\r\n    -3.5453754198733706E-5, -3.45826352356192E-5, -3.3430864933338768E-5,\r\n    -3.206884705071547E-5, -3.0568261987185312E-5, -2.8999225859050864E-5,\r\n    -2.7427779271678294E-5, -2.5913769684733575E-5, -2.4509170254674673E-5,\r\n    -2.325685739852128E-5, -2.2189849803001687E-5, -2.1330993837472602E-5,\r\n    -2.0693064824587758E-5, -2.0279240752577146E-5, -2.0083895014774358E-5,\r\n    -2.0093647741714021E-5, -2.0288611231668682E-5, -2.0643763759149887E-5,\r\n    -2.113038742458166E-5, -2.1717509401193969E-5, -2.2373291577333984E-5,\r\n    -2.3066320784298656E-5, -2.3766760121125513E-5, -0.0, -4.8214229598965584E-7,\r\n    -1.8485694956578623E-6, -3.9632907853728255E-6, -6.6748675532157314E-6,\r\n    -9.823628770824104E-6, -1.3248512065079052E-5, -1.6793306561057088E-5,\r\n    -2.0312117582142232E-5, -2.3673919935732017E-5, -2.6766113772986577E-5,\r\n    -2.9497043036835796E-5, -3.1797479675288924E-5, -3.362111573190241E-5,\r\n    -3.4944139057282E-5, -3.576399594340853E-5, -3.6097464998909966E-5,\r\n    -3.5978180883343419E-5, -3.5453754198733706E-5, -3.45826352356192E-5,\r\n    -3.3430864933338768E-5, -3.206884705071547E-5, -3.0568261987185312E-5,\r\n    -2.8999225859050864E-5, -2.7427779271678294E-5, -2.5913769684733575E-5,\r\n    -2.4509170254674673E-5, -2.325685739852128E-5, -2.2189849803001687E-5,\r\n    -2.1330993837472602E-5, -2.0693064824587758E-5, -2.0279240752577146E-5,\r\n    -2.0083895014774358E-5, -2.0093647741714021E-5, -2.0288611231668682E-5,\r\n    -2.0643763759149887E-5, -2.113038742458166E-5, -2.1717509401193969E-5,\r\n    -2.2373291577333984E-5, -2.3066320784298656E-5, -0.0, -0.0,\r\n    -4.8214229598965584E-7, -1.8485694956578623E-6, -3.9632907853728255E-6,\r\n    -6.6748675532157314E-6, -9.823628770824104E-6, -1.3248512065079052E-5,\r\n    -1.6793306561057088E-5, -2.0312117582142232E-5, -2.3673919935732017E-5,\r\n    -2.6766113772986577E-5, -2.9497043036835796E-5, -3.1797479675288924E-5,\r\n    -3.362111573190241E-5, -3.4944139057282E-5, -3.576399594340853E-5,\r\n    -3.6097464998909966E-5, -3.5978180883343419E-5, -3.5453754198733706E-5,\r\n    -3.45826352356192E-5, -3.3430864933338768E-5, -3.206884705071547E-5,\r\n    -3.0568261987185312E-5, -2.8999225859050864E-5, -2.7427779271678294E-5,\r\n    -2.5913769684733575E-5, -2.4509170254674673E-5, -2.325685739852128E-5,\r\n    -2.2189849803001687E-5, -2.1330993837472602E-5, -2.0693064824587758E-5,\r\n    -2.0279240752577146E-5, -2.0083895014774358E-5, -2.0093647741714021E-5,\r\n    -2.0288611231668682E-5, -2.0643763759149887E-5, -2.113038742458166E-5,\r\n    -2.1717509401193969E-5, -2.2373291577333984E-5 };\r\n\r\n  int32_T c3_i58;\r\n  int32_T c3_i59;\r\n  static real_T c3_d_Ku1[3] = { 0.001012146693774779, 0.00099841202336169253,\r\n    0.00098057063784741253 };\r\n\r\n  int32_T c3_i60;\r\n  static real_T c3_d_Kx[18] = { 5.81380892253297E-5, -7.6992303482020355E-5,\r\n    4.9959881061444248E-5, 3.5714303443921009E-5, -8.6318235228568119E-5,\r\n    0.00093515439029275926, 3.3816621521332978E-5, -8.7024393190059517E-5,\r\n    4.0897163419608722E-5, 1.3987682425195502E-5, -9.162470712811274E-5,\r\n    0.00091138763017163367, 1.0459436584984047E-5, -9.2249328460078123E-5,\r\n    3.3477430157940007E-5, -5.2608879585477165E-6, -9.1109713903212558E-5,\r\n    0.00088832130938733505 };\r\n\r\n  int32_T c3_i61;\r\n  static real_T c3_d_Hinv[16] = { 92.179978291680015, -7.7033283005954782,\r\n    -7.5551391157310706, 0.0, -7.7033283005954782, 92.364844412162427,\r\n    -7.5343780808991276, 0.0, -7.5551391157310706, -7.5343780808991276,\r\n    92.5182851670764, 0.0, 0.0, 0.0, 0.0, 0.0001 };\r\n\r\n  int32_T c3_i62;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i63;\r\n  int32_T c3_i64;\r\n  int32_T c3_i65;\r\n  real_T c3_b_u[40];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i66;\r\n  real_T c3_c_u[82];\r\n  const mxArray *c3_b_y = NULL;\r\n  real_T c3_d_u;\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_e_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  real_T c3_f_u;\r\n  const mxArray *c3_e_y = NULL;\r\n  real_T c3_g_u;\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i67;\r\n  real_T c3_i_u[8];\r\n  const mxArray *c3_h_y = NULL;\r\n  real_T c3_j_u;\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i68;\r\n  boolean_T c3_k_u[16];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i69;\r\n  real_T c3_p_u[16];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i70;\r\n  real_T c3_q_u[18];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i71;\r\n  real_T c3_r_u[3];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i72;\r\n  real_T c3_s_u[120];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i73;\r\n  real_T c3_t_u[120];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i74;\r\n  real_T c3_u_u[246];\r\n  const mxArray *c3_t_y = NULL;\r\n  int32_T c3_i75;\r\n  real_T c3_v_u[12];\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i76;\r\n  real_T c3_w_u[72];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i77;\r\n  real_T c3_x_u[12];\r\n  const mxArray *c3_w_y = NULL;\r\n  int32_T c3_i78;\r\n  real_T c3_y_u[984];\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i79;\r\n  real_T c3_ab_u[4];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i80;\r\n  real_T c3_bb_u[40];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  real_T c3_db_u;\r\n  const mxArray *c3_cb_y = NULL;\r\n  real_T c3_eb_u;\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i81;\r\n  real_T c3_rb_u[16];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i82;\r\n  real_T c3_tb_u[40];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i83;\r\n  real_T c3_ub_u[16];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i84;\r\n  real_T c3_vb_u[48];\r\n  const mxArray *c3_ub_y = NULL;\r\n  real_T c3_wb_u;\r\n  const mxArray *c3_vb_y = NULL;\r\n  real_T c3_xb_u;\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv17[40];\r\n  int32_T c3_i85;\r\n  boolean_T c3_bv1[16];\r\n  int32_T c3_i86;\r\n  int32_T c3_i87;\r\n  int32_T c3_i88;\r\n  real_T *c3_b_old_u;\r\n  real_T *c3_b_umin;\r\n  real_T *c3_b_umax;\r\n  real_T *c3_b_ymin;\r\n  real_T *c3_b_ymax;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_ywt;\r\n  real_T *c3_b_duwt;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_pc_u;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_c_useq)[40];\r\n  boolean_T (*c3_c_iAout)[16];\r\n  boolean_T (*c3_b_iA)[16];\r\n  real_T (*c3_b_x)[8];\r\n  real_T (*c3_b_vseq)[82];\r\n  real_T (*c3_b_rseq)[40];\r\n  c3_c_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[16])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[8])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[82])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[40])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_old_u;\r\n  c3_b_hoistedGlobal = *c3_b_umin;\r\n  c3_c_hoistedGlobal = *c3_b_umax;\r\n  c3_d_hoistedGlobal = *c3_b_ymin;\r\n  c3_e_hoistedGlobal = *c3_b_ymax;\r\n  c3_f_hoistedGlobal = *c3_b_switch_in;\r\n  c3_g_hoistedGlobal = *c3_b_ywt;\r\n  c3_h_hoistedGlobal = *c3_b_duwt;\r\n  c3_i_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i42 = 0; c3_i42 < 40; c3_i42++) {\r\n    c3_rseq[c3_i42] = (*c3_b_rseq)[c3_i42];\r\n  }\r\n\r\n  for (c3_i43 = 0; c3_i43 < 82; c3_i43++) {\r\n    c3_vseq[c3_i43] = (*c3_b_vseq)[c3_i43];\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 8; c3_i44++) {\r\n    c3_x[c3_i44] = (*c3_b_x)[c3_i44];\r\n  }\r\n\r\n  c3_old_u = c3_hoistedGlobal;\r\n  for (c3_i45 = 0; c3_i45 < 16; c3_i45++) {\r\n    c3_iA[c3_i45] = (*c3_b_iA)[c3_i45];\r\n  }\r\n\r\n  c3_umin = c3_b_hoistedGlobal;\r\n  c3_umax = c3_c_hoistedGlobal;\r\n  c3_ymin = c3_d_hoistedGlobal;\r\n  c3_ymax = c3_e_hoistedGlobal;\r\n  c3_switch_in = c3_f_hoistedGlobal;\r\n  c3_ywt = c3_g_hoistedGlobal;\r\n  c3_duwt = c3_h_hoistedGlobal;\r\n  c3_rhoeps = c3_i_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mlim, 11U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mv, 14U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_uoff, 18U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_yoff, 19U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_c_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_old_u, 56U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umin, 58U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_umax, 59U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymin, 60U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ymax, 61U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_ywt, 63U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_duwt, 64U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_u, 66U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i46 = 0; c3_i46 < 48; c3_i46++) {\r\n    c3_c_Ac[c3_i46] = c3_d_Ac[c3_i46];\r\n  }\r\n\r\n  for (c3_i47 = 0; c3_i47 < 16; c3_i47++) {\r\n    c3_c_Linv[c3_i47] = c3_d_Linv[c3_i47];\r\n  }\r\n\r\n  for (c3_i48 = 0; c3_i48 < 40; c3_i48++) {\r\n    c3_c_blocking_moves[c3_i48] = c3_d_blocking_moves[c3_i48];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i49 = 0; c3_i49 < 16; c3_i49++) {\r\n    c3_c_H[c3_i49] = c3_d_H[c3_i49];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  c3_c_yoff = c3_b_yoff;\r\n  c3_c_uoff = c3_b_uoff;\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i50 = 0; c3_i50 < 40; c3_i50++) {\r\n    c3_c_utarget[c3_i50] = 0.0;\r\n  }\r\n\r\n  for (c3_i51 = 0; c3_i51 < 4; c3_i51++) {\r\n    c3_c_z_degrees[c3_i51] = 0.0;\r\n  }\r\n\r\n  for (c3_i52 = 0; c3_i52 < 984; c3_i52++) {\r\n    c3_c_Mv[c3_i52] = 0.0;\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 12; c3_i53++) {\r\n    c3_c_Mu1[c3_i53] = c3_d_Mu1[c3_i53];\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 72; c3_i54++) {\r\n    c3_c_Mx[c3_i54] = 0.0;\r\n  }\r\n\r\n  for (c3_i55 = 0; c3_i55 < 12; c3_i55++) {\r\n    c3_c_Mlim[c3_i55] = c3_d_Mlim[c3_i55];\r\n  }\r\n\r\n  for (c3_i56 = 0; c3_i56 < 246; c3_i56++) {\r\n    c3_c_Kv[c3_i56] = c3_d_Kv[c3_i56];\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 120; c3_i57++) {\r\n    c3_c_Kr[c3_i57] = c3_d_Kr[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 120; c3_i58++) {\r\n    c3_c_Kut[c3_i58] = 0.0;\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 3; c3_i59++) {\r\n    c3_c_Ku1[c3_i59] = c3_d_Ku1[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 18; c3_i60++) {\r\n    c3_c_Kx[c3_i60] = c3_d_Kx[c3_i60];\r\n  }\r\n\r\n  for (c3_i61 = 0; c3_i61 < 16; c3_i61++) {\r\n    c3_c_Hinv[c3_i61] = c3_d_Hinv[c3_i61];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i62 = 0; c3_i62 < 6; c3_i62++) {\r\n    c3_DataType[c3_i62] = c3_cv0[c3_i62];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  c3_u = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i63 = 0; c3_i63 < 40; c3_i63++) {\r\n    c3_useq[c3_i63] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i64 = 0; c3_i64 < 16; c3_i64++) {\r\n    c3_iAout[c3_i64] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i65 = 0; c3_i65 < 40; c3_i65++) {\r\n    c3_b_u[c3_i65] = c3_rseq[c3_i65];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 40), FALSE);\r\n  for (c3_i66 = 0; c3_i66 < 82; c3_i66++) {\r\n    c3_c_u[c3_i66] = c3_vseq[c3_i66];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 82), FALSE);\r\n  c3_d_u = c3_umin;\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", &c3_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_e_u = c3_umax;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_f_u = c3_ymin;\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", &c3_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_g_u = c3_ymax;\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", &c3_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i67 = 0; c3_i67 < 8; c3_i67++) {\r\n    c3_i_u[c3_i67] = c3_x[c3_i67];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 8), FALSE);\r\n  c3_j_u = c3_old_u;\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", &c3_j_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i68 = 0; c3_i68 < 16; c3_i68++) {\r\n    c3_k_u[c3_i68] = c3_iA[c3_i68];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 16),\r\n                FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i69 = 0; c3_i69 < 16; c3_i69++) {\r\n    c3_p_u[c3_i69] = c3_d_Hinv[c3_i69];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i70 = 0; c3_i70 < 18; c3_i70++) {\r\n    c3_q_u[c3_i70] = c3_d_Kx[c3_i70];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 6, 3),\r\n                FALSE);\r\n  for (c3_i71 = 0; c3_i71 < 3; c3_i71++) {\r\n    c3_r_u[c3_i71] = c3_d_Ku1[c3_i71];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 1, 3),\r\n                FALSE);\r\n  for (c3_i72 = 0; c3_i72 < 120; c3_i72++) {\r\n    c3_s_u[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 40, 3),\r\n                FALSE);\r\n  for (c3_i73 = 0; c3_i73 < 120; c3_i73++) {\r\n    c3_t_u[c3_i73] = c3_d_Kr[c3_i73];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 40, 3),\r\n                FALSE);\r\n  for (c3_i74 = 0; c3_i74 < 246; c3_i74++) {\r\n    c3_u_u[c3_i74] = c3_d_Kv[c3_i74];\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 82, 3),\r\n                FALSE);\r\n  for (c3_i75 = 0; c3_i75 < 12; c3_i75++) {\r\n    c3_v_u[c3_i75] = c3_d_Mlim[c3_i75];\r\n  }\r\n\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", c3_v_u, 0, 0U, 1U, 0U, 1, 12), FALSE);\r\n  for (c3_i76 = 0; c3_i76 < 72; c3_i76++) {\r\n    c3_w_u[c3_i76] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 12, 6),\r\n                FALSE);\r\n  for (c3_i77 = 0; c3_i77 < 12; c3_i77++) {\r\n    c3_x_u[c3_i77] = c3_d_Mu1[c3_i77];\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 1, 12), FALSE);\r\n  for (c3_i78 = 0; c3_i78 < 984; c3_i78++) {\r\n    c3_y_u[c3_i78] = 0.0;\r\n  }\r\n\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", c3_y_u, 0, 0U, 1U, 0U, 2, 12, 82),\r\n                FALSE);\r\n  for (c3_i79 = 0; c3_i79 < 4; c3_i79++) {\r\n    c3_ab_u[c3_i79] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  for (c3_i80 = 0; c3_i80 < 40; c3_i80++) {\r\n    c3_bb_u[c3_i80] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 40),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_db_u = c3_b_uoff;\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", &c3_db_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_eb_u = c3_b_yoff;\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", &c3_eb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i81 = 0; c3_i81 < 16; c3_i81++) {\r\n    c3_rb_u[c3_i81] = c3_d_H[c3_i81];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i82 = 0; c3_i82 < 40; c3_i82++) {\r\n    c3_tb_u[c3_i82] = c3_d_blocking_moves[c3_i82];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 40),\r\n                FALSE);\r\n  for (c3_i83 = 0; c3_i83 < 16; c3_i83++) {\r\n    c3_ub_u[c3_i83] = c3_d_Linv[c3_i83];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 4, 4),\r\n                FALSE);\r\n  for (c3_i84 = 0; c3_i84 < 48; c3_i84++) {\r\n    c3_vb_u[c3_i84] = c3_d_Ac[c3_i84];\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 12, 4),\r\n                FALSE);\r\n  c3_wb_u = c3_ywt;\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", &c3_wb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_xb_u = c3_duwt;\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", &c3_xb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_u = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\");\r\n  c3_cost = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv17);\r\n  for (c3_i85 = 0; c3_i85 < 40; c3_i85++) {\r\n    c3_useq[c3_i85] = c3_dv17[c3_i85];\r\n  }\r\n\r\n  c3_status = c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i86 = 0; c3_i86 < 16; c3_i86++) {\r\n    c3_iAout[c3_i86] = c3_bv1[c3_i86];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  *c3_pc_u = c3_u;\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i87 = 0; c3_i87 < 40; c3_i87++) {\r\n    (*c3_c_useq)[c3_i87] = c3_useq[c3_i87];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i88 = 0; c3_i88 < 16; c3_i88++) {\r\n    (*c3_c_iAout)[c3_i88] = c3_iAout[c3_i88];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i89;\r\n  boolean_T c3_b_inData[16];\r\n  int32_T c3_i90;\r\n  boolean_T c3_u[16];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i89 = 0; c3_i89 < 16; c3_i89++) {\r\n    c3_b_inData[c3_i89] = (*(boolean_T (*)[16])c3_inData)[c3_i89];\r\n  }\r\n\r\n  for (c3_i90 = 0; c3_i90 < 16; c3_i90++) {\r\n    c3_u[c3_i90] = c3_b_inData[c3_i90];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 16), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[16];\r\n  int32_T c3_i91;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i91 = 0; c3_i91 < 16; c3_i91++) {\r\n    (*(boolean_T (*)[16])c3_outData)[c3_i91] = c3_y[c3_i91];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_b_inData[40];\r\n  int32_T c3_i93;\r\n  real_T c3_u[40];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i92 = 0; c3_i92 < 40; c3_i92++) {\r\n    c3_b_inData[c3_i92] = (*(real_T (*)[40])c3_inData)[c3_i92];\r\n  }\r\n\r\n  for (c3_i93 = 0; c3_i93 < 40; c3_i93++) {\r\n    c3_u[c3_i93] = c3_b_inData[c3_i93];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 40), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[40];\r\n  int32_T c3_i94;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  for (c3_i94 = 0; c3_i94 < 40; c3_i94++) {\r\n    (*(real_T (*)[40])c3_outData)[c3_i94] = c3_y[c3_i94];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_b_inData[8];\r\n  int32_T c3_i96;\r\n  real_T c3_u[8];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i95 = 0; c3_i95 < 8; c3_i95++) {\r\n    c3_b_inData[c3_i95] = (*(real_T (*)[8])c3_inData)[c3_i95];\r\n  }\r\n\r\n  for (c3_i96 = 0; c3_i96 < 8; c3_i96++) {\r\n    c3_u[c3_i96] = c3_b_inData[c3_i96];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 8), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i97;\r\n  real_T c3_b_inData[82];\r\n  int32_T c3_i98;\r\n  real_T c3_u[82];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i97 = 0; c3_i97 < 82; c3_i97++) {\r\n    c3_b_inData[c3_i97] = (*(real_T (*)[82])c3_inData)[c3_i97];\r\n  }\r\n\r\n  for (c3_i98 = 0; c3_i98 < 82; c3_i98++) {\r\n    c3_u[c3_i98] = c3_b_inData[c3_i98];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 82), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i99;\r\n  int32_T c3_i100;\r\n  int32_T c3_i101;\r\n  real_T c3_b_inData[48];\r\n  int32_T c3_i102;\r\n  int32_T c3_i103;\r\n  int32_T c3_i104;\r\n  real_T c3_u[48];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i99 = 0;\r\n  for (c3_i100 = 0; c3_i100 < 4; c3_i100++) {\r\n    for (c3_i101 = 0; c3_i101 < 12; c3_i101++) {\r\n      c3_b_inData[c3_i101 + c3_i99] = (*(real_T (*)[48])c3_inData)[c3_i101 +\r\n        c3_i99];\r\n    }\r\n\r\n    c3_i99 += 12;\r\n  }\r\n\r\n  c3_i102 = 0;\r\n  for (c3_i103 = 0; c3_i103 < 4; c3_i103++) {\r\n    for (c3_i104 = 0; c3_i104 < 12; c3_i104++) {\r\n      c3_u[c3_i104 + c3_i102] = c3_b_inData[c3_i104 + c3_i102];\r\n    }\r\n\r\n    c3_i102 += 12;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 12, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i105;\r\n  int32_T c3_i106;\r\n  int32_T c3_i107;\r\n  real_T c3_b_inData[16];\r\n  int32_T c3_i108;\r\n  int32_T c3_i109;\r\n  int32_T c3_i110;\r\n  real_T c3_u[16];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i105 = 0;\r\n  for (c3_i106 = 0; c3_i106 < 4; c3_i106++) {\r\n    for (c3_i107 = 0; c3_i107 < 4; c3_i107++) {\r\n      c3_b_inData[c3_i107 + c3_i105] = (*(real_T (*)[16])c3_inData)[c3_i107 +\r\n        c3_i105];\r\n    }\r\n\r\n    c3_i105 += 4;\r\n  }\r\n\r\n  c3_i108 = 0;\r\n  for (c3_i109 = 0; c3_i109 < 4; c3_i109++) {\r\n    for (c3_i110 = 0; c3_i110 < 4; c3_i110++) {\r\n      c3_u[c3_i110 + c3_i108] = c3_b_inData[c3_i110 + c3_i108];\r\n    }\r\n\r\n    c3_i108 += 4;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 4, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i111;\r\n  real_T c3_b_inData[40];\r\n  int32_T c3_i112;\r\n  real_T c3_u[40];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i111 = 0; c3_i111 < 40; c3_i111++) {\r\n    c3_b_inData[c3_i111] = (*(real_T (*)[40])c3_inData)[c3_i111];\r\n  }\r\n\r\n  for (c3_i112 = 0; c3_i112 < 40; c3_i112++) {\r\n    c3_u[c3_i112] = c3_b_inData[c3_i112];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 40), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i113;\r\n  real_T c3_b_inData[4];\r\n  int32_T c3_i114;\r\n  real_T c3_u[4];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i113 = 0; c3_i113 < 4; c3_i113++) {\r\n    c3_b_inData[c3_i113] = (*(real_T (*)[4])c3_inData)[c3_i113];\r\n  }\r\n\r\n  for (c3_i114 = 0; c3_i114 < 4; c3_i114++) {\r\n    c3_u[c3_i114] = c3_b_inData[c3_i114];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 4), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i115;\r\n  int32_T c3_i116;\r\n  int32_T c3_i117;\r\n  real_T c3_b_inData[984];\r\n  int32_T c3_i118;\r\n  int32_T c3_i119;\r\n  int32_T c3_i120;\r\n  real_T c3_u[984];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i115 = 0;\r\n  for (c3_i116 = 0; c3_i116 < 82; c3_i116++) {\r\n    for (c3_i117 = 0; c3_i117 < 12; c3_i117++) {\r\n      c3_b_inData[c3_i117 + c3_i115] = (*(real_T (*)[984])c3_inData)[c3_i117 +\r\n        c3_i115];\r\n    }\r\n\r\n    c3_i115 += 12;\r\n  }\r\n\r\n  c3_i118 = 0;\r\n  for (c3_i119 = 0; c3_i119 < 82; c3_i119++) {\r\n    for (c3_i120 = 0; c3_i120 < 12; c3_i120++) {\r\n      c3_u[c3_i120 + c3_i118] = c3_b_inData[c3_i120 + c3_i118];\r\n    }\r\n\r\n    c3_i118 += 12;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 12, 82), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i121;\r\n  real_T c3_b_inData[12];\r\n  int32_T c3_i122;\r\n  real_T c3_u[12];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i121 = 0; c3_i121 < 12; c3_i121++) {\r\n    c3_b_inData[c3_i121] = (*(real_T (*)[12])c3_inData)[c3_i121];\r\n  }\r\n\r\n  for (c3_i122 = 0; c3_i122 < 12; c3_i122++) {\r\n    c3_u[c3_i122] = c3_b_inData[c3_i122];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 12), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i123;\r\n  int32_T c3_i124;\r\n  int32_T c3_i125;\r\n  real_T c3_b_inData[72];\r\n  int32_T c3_i126;\r\n  int32_T c3_i127;\r\n  int32_T c3_i128;\r\n  real_T c3_u[72];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i123 = 0;\r\n  for (c3_i124 = 0; c3_i124 < 6; c3_i124++) {\r\n    for (c3_i125 = 0; c3_i125 < 12; c3_i125++) {\r\n      c3_b_inData[c3_i125 + c3_i123] = (*(real_T (*)[72])c3_inData)[c3_i125 +\r\n        c3_i123];\r\n    }\r\n\r\n    c3_i123 += 12;\r\n  }\r\n\r\n  c3_i126 = 0;\r\n  for (c3_i127 = 0; c3_i127 < 6; c3_i127++) {\r\n    for (c3_i128 = 0; c3_i128 < 12; c3_i128++) {\r\n      c3_u[c3_i128 + c3_i126] = c3_b_inData[c3_i128 + c3_i126];\r\n    }\r\n\r\n    c3_i126 += 12;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 12, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i129;\r\n  int32_T c3_i130;\r\n  int32_T c3_i131;\r\n  real_T c3_b_inData[246];\r\n  int32_T c3_i132;\r\n  int32_T c3_i133;\r\n  int32_T c3_i134;\r\n  real_T c3_u[246];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i129 = 0;\r\n  for (c3_i130 = 0; c3_i130 < 3; c3_i130++) {\r\n    for (c3_i131 = 0; c3_i131 < 82; c3_i131++) {\r\n      c3_b_inData[c3_i131 + c3_i129] = (*(real_T (*)[246])c3_inData)[c3_i131 +\r\n        c3_i129];\r\n    }\r\n\r\n    c3_i129 += 82;\r\n  }\r\n\r\n  c3_i132 = 0;\r\n  for (c3_i133 = 0; c3_i133 < 3; c3_i133++) {\r\n    for (c3_i134 = 0; c3_i134 < 82; c3_i134++) {\r\n      c3_u[c3_i134 + c3_i132] = c3_b_inData[c3_i134 + c3_i132];\r\n    }\r\n\r\n    c3_i132 += 82;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 82, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i135;\r\n  int32_T c3_i136;\r\n  int32_T c3_i137;\r\n  real_T c3_b_inData[120];\r\n  int32_T c3_i138;\r\n  int32_T c3_i139;\r\n  int32_T c3_i140;\r\n  real_T c3_u[120];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i135 = 0;\r\n  for (c3_i136 = 0; c3_i136 < 3; c3_i136++) {\r\n    for (c3_i137 = 0; c3_i137 < 40; c3_i137++) {\r\n      c3_b_inData[c3_i137 + c3_i135] = (*(real_T (*)[120])c3_inData)[c3_i137 +\r\n        c3_i135];\r\n    }\r\n\r\n    c3_i135 += 40;\r\n  }\r\n\r\n  c3_i138 = 0;\r\n  for (c3_i139 = 0; c3_i139 < 3; c3_i139++) {\r\n    for (c3_i140 = 0; c3_i140 < 40; c3_i140++) {\r\n      c3_u[c3_i140 + c3_i138] = c3_b_inData[c3_i140 + c3_i138];\r\n    }\r\n\r\n    c3_i138 += 40;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 40, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i142;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i141 = 0; c3_i141 < 3; c3_i141++) {\r\n    c3_b_inData[c3_i141] = (*(real_T (*)[3])c3_inData)[c3_i141];\r\n  }\r\n\r\n  for (c3_i142 = 0; c3_i142 < 3; c3_i142++) {\r\n    c3_u[c3_i142] = c3_b_inData[c3_i142];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i143;\r\n  int32_T c3_i144;\r\n  int32_T c3_i145;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i146;\r\n  int32_T c3_i147;\r\n  int32_T c3_i148;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i143 = 0;\r\n  for (c3_i144 = 0; c3_i144 < 3; c3_i144++) {\r\n    for (c3_i145 = 0; c3_i145 < 6; c3_i145++) {\r\n      c3_b_inData[c3_i145 + c3_i143] = (*(real_T (*)[18])c3_inData)[c3_i145 +\r\n        c3_i143];\r\n    }\r\n\r\n    c3_i143 += 6;\r\n  }\r\n\r\n  c3_i146 = 0;\r\n  for (c3_i147 = 0; c3_i147 < 3; c3_i147++) {\r\n    for (c3_i148 = 0; c3_i148 < 6; c3_i148++) {\r\n      c3_u[c3_i148 + c3_i146] = c3_b_inData[c3_i148 + c3_i146];\r\n    }\r\n\r\n    c3_i146 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i149;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i150;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i149 = 0; c3_i149 < 6; c3_i149++) {\r\n    c3_b_inData[c3_i149] = (*(char_T (*)[6])c3_inData)[c3_i149];\r\n  }\r\n\r\n  for (c3_i150 = 0; c3_i150 < 6; c3_i150++) {\r\n    c3_u[c3_i150] = c3_b_inData[c3_i150];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic real_T c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId);\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d34;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d34, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d34;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[40])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[40])\r\n{\r\n  real_T c3_dv18[40];\r\n  int32_T c3_i151;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv18, 1, 0, 0U, 1, 0U, 1, 40);\r\n  for (c3_i151 = 0; c3_i151 < 40; c3_i151++) {\r\n    c3_y[c3_i151] = c3_dv18[c3_i151];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[16])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[16])\r\n{\r\n  boolean_T c3_bv2[16];\r\n  int32_T c3_i152;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 16);\r\n  for (c3_i152 = 0; c3_i152 < 16; c3_i152++) {\r\n    c3_y[c3_i152] = c3_bv2[c3_i152];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i153;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i153, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i153;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[16])\r\n{\r\n  real_T c3_dv19[16];\r\n  int32_T c3_i154;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv19, 1, 0, 0U, 1, 0U, 2, 4, 4);\r\n  for (c3_i154 = 0; c3_i154 < 16; c3_i154++) {\r\n    c3_y[c3_i154] = c3_dv19[c3_i154];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[16];\r\n  int32_T c3_i155;\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i155 = 0;\r\n  for (c3_i156 = 0; c3_i156 < 4; c3_i156++) {\r\n    for (c3_i157 = 0; c3_i157 < 4; c3_i157++) {\r\n      (*(real_T (*)[16])c3_outData)[c3_i157 + c3_i155] = c3_y[c3_i157 + c3_i155];\r\n    }\r\n\r\n    c3_i155 += 4;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv20[18];\r\n  int32_T c3_i158;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv20, 1, 0, 0U, 1, 0U, 2, 6, 3);\r\n  for (c3_i158 = 0; c3_i158 < 18; c3_i158++) {\r\n    c3_y[c3_i158] = c3_dv20[c3_i158];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i159;\r\n  int32_T c3_i160;\r\n  int32_T c3_i161;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i159 = 0;\r\n  for (c3_i160 = 0; c3_i160 < 3; c3_i160++) {\r\n    for (c3_i161 = 0; c3_i161 < 6; c3_i161++) {\r\n      (*(real_T (*)[18])c3_outData)[c3_i161 + c3_i159] = c3_y[c3_i161 + c3_i159];\r\n    }\r\n\r\n    c3_i159 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv21[3];\r\n  int32_T c3_i162;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv21, 1, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i162 = 0; c3_i162 < 3; c3_i162++) {\r\n    c3_y[c3_i162] = c3_dv21[c3_i162];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i163;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  for (c3_i163 = 0; c3_i163 < 3; c3_i163++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i163] = c3_y[c3_i163];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[120])\r\n{\r\n  real_T c3_dv22[120];\r\n  int32_T c3_i164;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 2, 40,\r\n                3);\r\n  for (c3_i164 = 0; c3_i164 < 120; c3_i164++) {\r\n    c3_y[c3_i164] = c3_dv22[c3_i164];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[120];\r\n  int32_T c3_i165;\r\n  int32_T c3_i166;\r\n  int32_T c3_i167;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i165 = 0;\r\n  for (c3_i166 = 0; c3_i166 < 3; c3_i166++) {\r\n    for (c3_i167 = 0; c3_i167 < 40; c3_i167++) {\r\n      (*(real_T (*)[120])c3_outData)[c3_i167 + c3_i165] = c3_y[c3_i167 + c3_i165];\r\n    }\r\n\r\n    c3_i165 += 40;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[246])\r\n{\r\n  real_T c3_dv23[246];\r\n  int32_T c3_i168;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 82,\r\n                3);\r\n  for (c3_i168 = 0; c3_i168 < 246; c3_i168++) {\r\n    c3_y[c3_i168] = c3_dv23[c3_i168];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[246];\r\n  int32_T c3_i169;\r\n  int32_T c3_i170;\r\n  int32_T c3_i171;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kv);\r\n  c3_i169 = 0;\r\n  for (c3_i170 = 0; c3_i170 < 3; c3_i170++) {\r\n    for (c3_i171 = 0; c3_i171 < 82; c3_i171++) {\r\n      (*(real_T (*)[246])c3_outData)[c3_i171 + c3_i169] = c3_y[c3_i171 + c3_i169];\r\n    }\r\n\r\n    c3_i169 += 82;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[12])\r\n{\r\n  real_T c3_dv24[12];\r\n  int32_T c3_i172;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 1, 12);\r\n  for (c3_i172 = 0; c3_i172 < 12; c3_i172++) {\r\n    c3_y[c3_i172] = c3_dv24[c3_i172];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mlim;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[12];\r\n  int32_T c3_i173;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mlim = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mlim), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mlim);\r\n  for (c3_i173 = 0; c3_i173 < 12; c3_i173++) {\r\n    (*(real_T (*)[12])c3_outData)[c3_i173] = c3_y[c3_i173];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[72])\r\n{\r\n  real_T c3_dv25[72];\r\n  int32_T c3_i174;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 12,\r\n                6);\r\n  for (c3_i174 = 0; c3_i174 < 72; c3_i174++) {\r\n    c3_y[c3_i174] = c3_dv25[c3_i174];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[72];\r\n  int32_T c3_i175;\r\n  int32_T c3_i176;\r\n  int32_T c3_i177;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  c3_i175 = 0;\r\n  for (c3_i176 = 0; c3_i176 < 6; c3_i176++) {\r\n    for (c3_i177 = 0; c3_i177 < 12; c3_i177++) {\r\n      (*(real_T (*)[72])c3_outData)[c3_i177 + c3_i175] = c3_y[c3_i177 + c3_i175];\r\n    }\r\n\r\n    c3_i175 += 12;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[984])\r\n{\r\n  real_T c3_dv26[984];\r\n  int32_T c3_i178;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 12,\r\n                82);\r\n  for (c3_i178 = 0; c3_i178 < 984; c3_i178++) {\r\n    c3_y[c3_i178] = c3_dv26[c3_i178];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[984];\r\n  int32_T c3_i179;\r\n  int32_T c3_i180;\r\n  int32_T c3_i181;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mv);\r\n  c3_i179 = 0;\r\n  for (c3_i180 = 0; c3_i180 < 82; c3_i180++) {\r\n    for (c3_i181 = 0; c3_i181 < 12; c3_i181++) {\r\n      (*(real_T (*)[984])c3_outData)[c3_i181 + c3_i179] = c3_y[c3_i181 + c3_i179];\r\n    }\r\n\r\n    c3_i179 += 12;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[4])\r\n{\r\n  real_T c3_dv27[4];\r\n  int32_T c3_i182;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 1, 4);\r\n  for (c3_i182 = 0; c3_i182 < 4; c3_i182++) {\r\n    c3_y[c3_i182] = c3_dv27[c3_i182];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[4];\r\n  int32_T c3_i183;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i183 = 0; c3_i183 < 4; c3_i183++) {\r\n    (*(real_T (*)[4])c3_outData)[c3_i183] = c3_y[c3_i183];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[40])\r\n{\r\n  real_T c3_dv28[40];\r\n  int32_T c3_i184;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 1,\r\n                40);\r\n  for (c3_i184 = 0; c3_i184 < 40; c3_i184++) {\r\n    c3_y[c3_i184] = c3_dv28[c3_i184];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[40];\r\n  int32_T c3_i185;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i185 = 0; c3_i185 < 40; c3_i185++) {\r\n    (*(real_T (*)[40])c3_outData)[c3_i185] = c3_y[c3_i185];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[48])\r\n{\r\n  real_T c3_dv29[48];\r\n  int32_T c3_i186;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 2, 12,\r\n                4);\r\n  for (c3_i186 = 0; c3_i186 < 48; c3_i186++) {\r\n    c3_y[c3_i186] = c3_dv29[c3_i186];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ac;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[48];\r\n  int32_T c3_i187;\r\n  int32_T c3_i188;\r\n  int32_T c3_i189;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ac = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ac), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ac);\r\n  c3_i187 = 0;\r\n  for (c3_i188 = 0; c3_i188 < 4; c3_i188++) {\r\n    for (c3_i189 = 0; c3_i189 < 12; c3_i189++) {\r\n      (*(real_T (*)[48])c3_outData)[c3_i189 + c3_i187] = c3_y[c3_i189 + c3_i187];\r\n    }\r\n\r\n    c3_i187 += 12;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1327478418U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3134124955U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1242351493U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2282091852U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"SjMXglQ48R19dZW4lA8EQE\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(40);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(82);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(8);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(16);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(40);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(40);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(82);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(4);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(82);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(12);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(40);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(40);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(4);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(40);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(16);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 40;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 82;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 8;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 16;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 40;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 40;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 40;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 82;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 12;\r\n          _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 12;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 12;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 12;\r\n          dimVector[1]= 82;\r\n          _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 40;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)c3_e_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 40;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 4;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_f_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 12;\r\n          dimVector[1]= 4;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 16;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_old_u;\r\n          real_T *c3_umin;\r\n          real_T *c3_umax;\r\n          real_T *c3_ymin;\r\n          real_T *c3_ymax;\r\n          real_T *c3_switch_in;\r\n          real_T *c3_ywt;\r\n          real_T *c3_duwt;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_u;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[40];\r\n          real_T (*c3_vseq)[82];\r\n          real_T (*c3_x)[8];\r\n          boolean_T (*c3_iA)[16];\r\n          real_T (*c3_useq)[40];\r\n          boolean_T (*c3_iAout)[16];\r\n          c3_iAout = (boolean_T (*)[16])ssGetOutputPortSignal(chartInstance->S,\r\n            5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T *)ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T *)ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T *)ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T *)ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T *)ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T *)ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T *)ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[16])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T *)ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[8])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[82])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[40])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, &chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, &chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"BE4GM0nbnhTJ929HHu03ZF\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(95125335U));\r\n  ssSetChecksum1(S,(194292467U));\r\n  ssSetChecksum2(S,(922080002U));\r\n  ssSetChecksum3(S,(2685617946U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[16];\r\n  real_T c3_Kx[18];\r\n  real_T c3_Ku1[3];\r\n  real_T c3_Kut[120];\r\n  real_T c3_Kr[120];\r\n  real_T c3_Kv[246];\r\n  real_T c3_Mlim[12];\r\n  real_T c3_Mx[72];\r\n  real_T c3_Mu1[12];\r\n  real_T c3_Mv[984];\r\n  real_T c3_z_degrees[4];\r\n  real_T c3_utarget[40];\r\n  real_T c3_p;\r\n  real_T c3_uoff;\r\n  real_T c3_yoff;\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[16];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[40];\r\n  real_T c3_Linv[16];\r\n  real_T c3_Ac[48];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (40.0)\r\n#define c4_b_ny                        (1.0)\r\n#define c4_b_nv                        (2.0)\r\n#define c4_b_yoff                      (0.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (0.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic real_T c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[40]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[40]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[82]);\r\nstatic void c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[82]);\r\nstatic void c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier, real_T c4_y[2]);\r\nstatic void c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2]);\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  real_T c4_d7;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_yoff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d7 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i0;\r\n  real_T c4_u[40];\r\n  const mxArray *c4_b_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_b_u[2];\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i2;\r\n  real_T c4_c_u[82];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T (*c4_vseq)[82];\r\n  real_T (*c4_v)[2];\r\n  real_T (*c4_rseq)[40];\r\n  c4_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[82])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i0 = 0; c4_i0 < 40; c4_i0++) {\r\n    c4_u[c4_i0] = (*c4_rseq)[c4_i0];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 40), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  for (c4_i1 = 0; c4_i1 < 2; c4_i1++) {\r\n    c4_b_u[c4_i1] = (*c4_v)[c4_i1];\r\n  }\r\n\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", c4_b_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i2 = 0; c4_i2 < 82; c4_i2++) {\r\n    c4_c_u[c4_i2] = (*c4_vseq)[c4_i2];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 82), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv0[40];\r\n  int32_T c4_i3;\r\n  real_T c4_dv1[2];\r\n  int32_T c4_i4;\r\n  real_T c4_dv2[82];\r\n  int32_T c4_i5;\r\n  real_T (*c4_rseq)[40];\r\n  real_T (*c4_v)[2];\r\n  real_T (*c4_vseq)[82];\r\n  c4_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[82])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)),\r\n                        \"rseq\", c4_dv0);\r\n  for (c4_i3 = 0; c4_i3 < 40; c4_i3++) {\r\n    (*c4_rseq)[c4_i3] = c4_dv0[c4_i3];\r\n  }\r\n\r\n  c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)), \"v\",\r\n                        c4_dv1);\r\n  for (c4_i4 = 0; c4_i4 < 2; c4_i4++) {\r\n    (*c4_v)[c4_i4] = c4_dv1[c4_i4];\r\n  }\r\n\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv2);\r\n  for (c4_i5 = 0; c4_i5 < 82; c4_i5++) {\r\n    (*c4_vseq)[c4_i5] = c4_dv2[c4_i5];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_j_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i6;\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_hoistedGlobal;\r\n  real_T c4_ref;\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff;\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[40];\r\n  real_T c4_vseq[82];\r\n  real_T c4_v[2];\r\n  int32_T c4_i9;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  int32_T c4_i12;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T c4_f_u;\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv3[40];\r\n  int32_T c4_i13;\r\n  real_T c4_dv4[82];\r\n  int32_T c4_i14;\r\n  real_T c4_dv5[2];\r\n  int32_T c4_i15;\r\n  int32_T c4_i16;\r\n  int32_T c4_i17;\r\n  int32_T c4_i18;\r\n  real_T *c4_b_ref;\r\n  real_T *c4_b_md;\r\n  real_T (*c4_c_rseq)[40];\r\n  real_T (*c4_c_vseq)[82];\r\n  real_T (*c4_c_v)[2];\r\n  c4_c_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[82])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i6 = 0; c4_i6 < 40; c4_i6++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i6], 0U);\r\n  }\r\n\r\n  for (c4_i7 = 0; c4_i7 < 82; c4_i7++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i7], 1U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_ref, 2U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  for (c4_i8 = 0; c4_i8 < 2; c4_i8++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_v)[c4_i8], 4U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff, 8U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_ref;\r\n  c4_b_hoistedGlobal = *c4_b_md;\r\n  c4_ref = c4_hoistedGlobal;\r\n  c4_md = c4_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_yoff, 4U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_d_sf_marshallOut,\r\n    c4_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_d_sf_marshallOut,\r\n    c4_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_ref, 11U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  c4_c_yoff = c4_b_yoff;\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i9 = 0; c4_i9 < 6; c4_i9++) {\r\n    c4_DataType[c4_i9] = c4_cv0[c4_i9];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i10 = 0; c4_i10 < 40; c4_i10++) {\r\n    c4_rseq[c4_i10] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i11 = 0; c4_i11 < 82; c4_i11++) {\r\n    c4_vseq[c4_i11] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  for (c4_i12 = 0; c4_i12 < 2; c4_i12++) {\r\n    c4_v[c4_i12] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  c4_u = c4_ref;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_f_u = c4_b_yoff;\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", &c4_f_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv3);\r\n  for (c4_i13 = 0; c4_i13 < 40; c4_i13++) {\r\n    c4_rseq[c4_i13] = c4_dv3[c4_i13];\r\n  }\r\n\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv4);\r\n  for (c4_i14 = 0; c4_i14 < 82; c4_i14++) {\r\n    c4_vseq[c4_i14] = c4_dv4[c4_i14];\r\n  }\r\n\r\n  c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\", c4_dv5);\r\n  for (c4_i15 = 0; c4_i15 < 2; c4_i15++) {\r\n    c4_v[c4_i15] = c4_dv5[c4_i15];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i16 = 0; c4_i16 < 40; c4_i16++) {\r\n    (*c4_c_rseq)[c4_i16] = c4_rseq[c4_i16];\r\n  }\r\n\r\n  for (c4_i17 = 0; c4_i17 < 82; c4_i17++) {\r\n    (*c4_c_vseq)[c4_i17] = c4_vseq[c4_i17];\r\n  }\r\n\r\n  for (c4_i18 = 0; c4_i18 < 2; c4_i18++) {\r\n    (*c4_c_v)[c4_i18] = c4_v[c4_i18];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i19;\r\n  real_T c4_b_inData[2];\r\n  int32_T c4_i20;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i19 = 0; c4_i19 < 2; c4_i19++) {\r\n    c4_b_inData[c4_i19] = (*(real_T (*)[2])c4_inData)[c4_i19];\r\n  }\r\n\r\n  for (c4_i20 = 0; c4_i20 < 2; c4_i20++) {\r\n    c4_u[c4_i20] = c4_b_inData[c4_i20];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[2];\r\n  int32_T c4_i21;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_v);\r\n  for (c4_i21 = 0; c4_i21 < 2; c4_i21++) {\r\n    (*(real_T (*)[2])c4_outData)[c4_i21] = c4_y[c4_i21];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i22;\r\n  real_T c4_b_inData[82];\r\n  int32_T c4_i23;\r\n  real_T c4_u[82];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i22 = 0; c4_i22 < 82; c4_i22++) {\r\n    c4_b_inData[c4_i22] = (*(real_T (*)[82])c4_inData)[c4_i22];\r\n  }\r\n\r\n  for (c4_i23 = 0; c4_i23 < 82; c4_i23++) {\r\n    c4_u[c4_i23] = c4_b_inData[c4_i23];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 82), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[82];\r\n  int32_T c4_i24;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i24 = 0; c4_i24 < 82; c4_i24++) {\r\n    (*(real_T (*)[82])c4_outData)[c4_i24] = c4_y[c4_i24];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i25;\r\n  real_T c4_b_inData[40];\r\n  int32_T c4_i26;\r\n  real_T c4_u[40];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i25 = 0; c4_i25 < 40; c4_i25++) {\r\n    c4_b_inData[c4_i25] = (*(real_T (*)[40])c4_inData)[c4_i25];\r\n  }\r\n\r\n  for (c4_i26 = 0; c4_i26 < 40; c4_i26++) {\r\n    c4_u[c4_i26] = c4_b_inData[c4_i26];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 40), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[40];\r\n  int32_T c4_i27;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i27 = 0; c4_i27 < 40; c4_i27++) {\r\n    (*(real_T (*)[40])c4_outData)[c4_i27] = c4_y[c4_i27];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic real_T c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d8;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d8, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d8;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_nargout;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_nargout = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_nargout), &c4_thisId);\r\n  sf_mex_destroy(&c4_nargout);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i28;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i29;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i28 = 0; c4_i28 < 6; c4_i28++) {\r\n    c4_b_inData[c4_i28] = (*(char_T (*)[6])c4_inData)[c4_i28];\r\n  }\r\n\r\n  for (c4_i29 = 0; c4_i29 < 6; c4_i29++) {\r\n    c4_u[c4_i29] = c4_b_inData[c4_i29];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[40])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[40])\r\n{\r\n  real_T c4_dv6[40];\r\n  int32_T c4_i30;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv6, 1, 0, 0U, 1, 0U, 1, 40);\r\n  for (c4_i30 = 0; c4_i30 < 40; c4_i30++) {\r\n    c4_y[c4_i30] = c4_dv6[c4_i30];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[82])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[82])\r\n{\r\n  real_T c4_dv7[82];\r\n  int32_T c4_i31;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv7, 1, 0, 0U, 1, 0U, 1, 82);\r\n  for (c4_i31 = 0; c4_i31 < 82; c4_i31++) {\r\n    c4_y[c4_i31] = c4_dv7[c4_i31];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier, real_T c4_y[2])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_v);\r\n}\r\n\r\nstatic void c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2])\r\n{\r\n  real_T c4_dv8[2];\r\n  int32_T c4_i32;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv8, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i32 = 0; c4_i32 < 2; c4_i32++) {\r\n    c4_y[c4_i32] = c4_dv8[c4_i32];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i33;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i33, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i33;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_k_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(1829581727U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1425960352U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(4038580172U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1056813094U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"9pWDNwGkz7jl7hss0o3NXG\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(40);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(82);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 40;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 82;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)\r\n            c4_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)c4_d_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_e_sf_marshallOut,(MexInFcnForType)c4_f_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_ref;\r\n          real_T *c4_md;\r\n          real_T (*c4_rseq)[40];\r\n          real_T (*c4_vseq)[82];\r\n          real_T (*c4_v)[2];\r\n          c4_v = (real_T (*)[2])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T *)ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[82])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[40])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, &chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"1DLx4GMDHt9YB7Zv8CsCqC\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(2587713859U));\r\n  ssSetChecksum1(S,(1495648963U));\r\n  ssSetChecksum2(S,(4031176922U));\r\n  ssSetChecksum3(S,(2459357676U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff;\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2614040817U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3880239305U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2342864157U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3641275904U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"SjMXglQ48R19dZW4lA8EQE\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"9pWDNwGkz7jl7hss0o3NXG\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"BE4GM0nbnhTJ929HHu03ZF\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"1DLx4GMDHt9YB7Zv8CsCqC\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"BE4GM0nbnhTJ929HHu03ZF\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"1DLx4GMDHt9YB7Zv8CsCqC\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_misonoise\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_misonoise/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_nonlinear_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_nonlinear_sfun.h\"\r\n#include \"mpc_nonlinear_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_nonlinearMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_nonlinear_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_nonlinear_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_nonlinear_method_dispatcher(SimStruct *simstructPtr,\r\n  unsigned int chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_process_check_sum_call( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2491844374U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3350410411U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2402956264U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3738917736U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(830638543U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4048865250U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2570044568U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3100851563U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3809486511U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(409198642U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3559760744U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3601546961U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_get_eml_resolved_functions_info( int nlhs, mxArray\r\n  * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_updateBuildInfo_args_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_nonlinear_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpc_nonlinearMachineNumber_ = sf_debug_initialize_machine(debugInstance,\r\n    \"mpc_nonlinear\",\"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,\r\n    _mpc_nonlinearMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,\r\n    _mpc_nonlinearMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_nonlinear_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_nonlinear_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpc_nonlinear\",\r\n      \"mpc_nonlinear\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_nonlinear_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun.h",
    "content": "#ifndef __mpc_nonlinear_sfun_h__\r\n#define __mpc_nonlinear_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_nonlinearMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_nonlinear_initializer(void);\r\nextern void mpc_nonlinear_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_nonlinear_optimization_info(void);\r\nextern void unload_mpc_nonlinear_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_nonlinear\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_nonlinear_sfun.c\r\nMACHINE_REG = mpc_nonlinear_sfun_registry.c\r\nMAKEFILE    = mpc_nonlinear_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_nonlinear_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_nonlinear\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun.mol",
    "content": "mpc_nonlinear_sfun.obj\r\nmpc_nonlinear_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_nonlinearMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinearMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_nonlinearMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/mpc_nonlinear_sfun_registry.c",
    "content": "#include \"mpc_nonlinear_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_process_check_sum_call( int nlhs, mxArray\r\n    * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_nonlinear_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_autoinheritance_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_third_party_uses_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_updateBuildInfo_args_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_nonlinear_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_nonlinear_method_dispatcher(SimStruct *S, unsigned\r\n  int chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_nonlinear\")) {\r\n    return(sf_mpc_nonlinear_method_dispatcher(simstructPtr,chartFileNumber,\r\n            specsCksum,method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_nonlinear_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_nonlinear_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_nonlinear_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_nonlinear_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_nonlinear_debug_initialize(struct SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_nonlinear_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_nonlinear_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_nonlinear_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (5.0)\r\n#define c3_b_nu                        (3.0)\r\n#define c3_b_isQP                      (TRUE)\r\n#define c3_b_ny                        (2.0)\r\n#define c3_b_degrees                   (7.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (7.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_t_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_u_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_v_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c3_u, const char_T *c3_identifier, real_T c3_y[3]);\r\nstatic void c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic real_T c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_cost, const char_T *c3_identifier);\r\nstatic real_T c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[15]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15]);\r\nstatic void c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[25]);\r\nstatic void c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[25]);\r\nstatic const mxArray *c3_w_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[49]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[42]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[90]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[36]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[54]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[108]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[7]);\r\nstatic void c3_q_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_v_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15]);\r\nstatic void c3_r_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_w_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[2]);\r\nstatic void c3_s_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_x_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[5]);\r\nstatic void c3_t_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_y_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_ab_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[49];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[42];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[18];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[90];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[60];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[36];\r\n  int32_T c3_i5;\r\n  real_T c3_dv6[18];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[126];\r\n  int32_T c3_i7;\r\n  real_T c3_dv8[54];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[108];\r\n  int32_T c3_i9;\r\n  real_T c3_dv10[7];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[15];\r\n  int32_T c3_i11;\r\n  real_T c3_d4;\r\n  real_T c3_dv12[3];\r\n  int32_T c3_i12;\r\n  real_T c3_dv13[2];\r\n  int32_T c3_i13;\r\n  real_T c3_d5;\r\n  real_T c3_d6;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_dv14[49];\r\n  int32_T c3_i14;\r\n  real_T c3_d17;\r\n  real_T c3_dv15[5];\r\n  int32_T c3_i15;\r\n  real_T c3_dv16[49];\r\n  int32_T c3_i16;\r\n  real_T c3_dv17[126];\r\n  int32_T c3_i17;\r\n  real_T c3_d18;\r\n  real_T c3_d19;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i0 = 0; c3_i0 < 49; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 7, 6);\r\n  for (c3_i1 = 0; c3_i1 < 42; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 3, 6);\r\n  for (c3_i2 = 0; c3_i2 < 18; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 15, 6);\r\n  for (c3_i3 = 0; c3_i3 < 90; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 10, 6);\r\n  for (c3_i4 = 0; c3_i4 < 60; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i5 = 0; c3_i5 < 36; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 1, 18);\r\n  for (c3_i6 = 0; c3_i6 < 18; c3_i6++) {\r\n    chartInstance->c3_Mlim[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 18, 7);\r\n  for (c3_i7 = 0; c3_i7 < 126; c3_i7++) {\r\n    chartInstance->c3_Mx[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 2, 18, 3);\r\n  for (c3_i8 = 0; c3_i8 < 54; c3_i8++) {\r\n    chartInstance->c3_Mu1[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 2, 18, 6);\r\n  for (c3_i9 = 0; c3_i9 < 108; c3_i9++) {\r\n    chartInstance->c3_Mv[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 7);\r\n  for (c3_i10 = 0; c3_i10 < 7; c3_i10++) {\r\n    chartInstance->c3_z_degrees[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 15);\r\n  for (c3_i11 = 0; c3_i11 < 15; c3_i11++) {\r\n    chartInstance->c3_utarget[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 1, 3);\r\n  for (c3_i12 = 0; c3_i12 < 3; c3_i12++) {\r\n    chartInstance->c3_uoff[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      c3_dv13, 0, 0, 0U, 1, 0U, 1, 2);\r\n  for (c3_i13 = 0; c3_i13 < 2; c3_i13++) {\r\n    chartInstance->c3_yoff[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d7 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d9;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i14 = 0; c3_i14 < 49; c3_i14++) {\r\n    chartInstance->c3_H[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv15, 0, 0, 0U, 1, 0U, 2, 1, 5);\r\n  for (c3_i15 = 0; c3_i15 < 5; c3_i15++) {\r\n    chartInstance->c3_blocking_moves[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv16, 0, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i16 = 0; c3_i16 < 49; c3_i16++) {\r\n    chartInstance->c3_Linv[c3_i16] = c3_dv16[c3_i16];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv17, 0, 0, 0U, 1, 0U, 2, 18, 7);\r\n  for (c3_i17 = 0; c3_i17 < 126; c3_i17++) {\r\n    chartInstance->c3_Ac[c3_i17] = c3_dv17[c3_i17];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i18;\r\n  boolean_T c3_b_u[25];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  int32_T c3_i19;\r\n  real_T c3_d_u[3];\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i20;\r\n  real_T c3_e_u[15];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_c_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T (*c3_useq)[15];\r\n  real_T (*c3_g_u)[3];\r\n  boolean_T (*c3_iAout)[25];\r\n  c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i18 = 0; c3_i18 < 25; c3_i18++) {\r\n    c3_b_u[c3_i18] = (*c3_iAout)[c3_i18];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 25),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  for (c3_i19 = 0; c3_i19 < 3; c3_i19++) {\r\n    c3_d_u[c3_i19] = (*c3_g_u)[c3_i19];\r\n  }\r\n\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", c3_d_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i20 = 0; c3_i20 < 15; c3_i20++) {\r\n    c3_e_u[c3_i20] = (*c3_useq)[c3_i20];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 2, 5, 3),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_c_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_c_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[25];\r\n  int32_T c3_i21;\r\n  real_T c3_dv18[3];\r\n  int32_T c3_i22;\r\n  real_T c3_dv19[15];\r\n  int32_T c3_i23;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[25];\r\n  real_T (*c3_b_u)[3];\r\n  real_T (*c3_useq)[15];\r\n  c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i21 = 0; c3_i21 < 25; c3_i21++) {\r\n    (*c3_iAout)[c3_i21] = c3_bv0[c3_i21];\r\n  }\r\n\r\n  *c3_status = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell\r\n    (c3_u, 2)), \"status\");\r\n  c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)), \"u\",\r\n                      c3_dv18);\r\n  for (c3_i22 = 0; c3_i22 < 3; c3_i22++) {\r\n    (*c3_b_u)[c3_i22] = c3_dv18[c3_i22];\r\n  }\r\n\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv19);\r\n  for (c3_i23 = 0; c3_i23 < 15; c3_i23++) {\r\n    (*c3_useq)[c3_i23] = c3_dv19[c3_i23];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_y_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  int32_T c3_i42;\r\n  int32_T c3_i43;\r\n  int32_T c3_i44;\r\n  int32_T c3_i45;\r\n  int32_T c3_i46;\r\n  int32_T c3_i47;\r\n  int32_T c3_i48;\r\n  int32_T c3_i49;\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  int32_T c3_i52;\r\n  int32_T c3_i53;\r\n  int32_T c3_i54;\r\n  int32_T c3_i55;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[25];\r\n  real_T (*c3_useq)[15];\r\n  real_T (*c3_u)[3];\r\n  real_T (*c3_duwt)[3];\r\n  real_T (*c3_ywt)[2];\r\n  real_T (*c3_ymax)[2];\r\n  real_T (*c3_ymin)[2];\r\n  real_T (*c3_umax)[3];\r\n  real_T (*c3_umin)[3];\r\n  boolean_T (*c3_iA)[25];\r\n  real_T (*c3_old_u)[3];\r\n  real_T (*c3_x)[7];\r\n  real_T (*c3_vseq)[6];\r\n  real_T (*c3_rseq)[10];\r\n  c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[25])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[7])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i24 = 0; c3_i24 < 10; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i24], 0U);\r\n  }\r\n\r\n  for (c3_i25 = 0; c3_i25 < 6; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i25], 1U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 7; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i26], 2U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_old_u)[c3_i27], 3U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 25; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i28], 4U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 3; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_umin)[c3_i29], 5U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 3; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_umax)[c3_i30], 6U);\r\n  }\r\n\r\n  for (c3_i31 = 0; c3_i31 < 2; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ymin)[c3_i31], 7U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 2; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ymax)[c3_i32], 8U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  for (c3_i33 = 0; c3_i33 < 2; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ywt)[c3_i33], 10U);\r\n  }\r\n\r\n  for (c3_i34 = 0; c3_i34 < 3; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_duwt)[c3_i34], 11U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  for (c3_i35 = 0; c3_i35 < 3; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_u)[c3_i35], 13U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i36 = 0; c3_i36 < 15; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i36], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i37 = 0; c3_i37 < 49; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i37], 21U);\r\n  }\r\n\r\n  for (c3_i38 = 0; c3_i38 < 42; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i38], 22U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 18; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i39], 23U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 90; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i40], 24U);\r\n  }\r\n\r\n  for (c3_i41 = 0; c3_i41 < 60; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i41], 25U);\r\n  }\r\n\r\n  for (c3_i42 = 0; c3_i42 < 36; c3_i42++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i42], 26U);\r\n  }\r\n\r\n  for (c3_i43 = 0; c3_i43 < 18; c3_i43++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim[c3_i43], 27U);\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 126; c3_i44++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i44], 28U);\r\n  }\r\n\r\n  for (c3_i45 = 0; c3_i45 < 54; c3_i45++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i45], 29U);\r\n  }\r\n\r\n  for (c3_i46 = 0; c3_i46 < 108; c3_i46++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv[c3_i46], 30U);\r\n  }\r\n\r\n  for (c3_i47 = 0; c3_i47 < 7; c3_i47++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i47], 31U);\r\n  }\r\n\r\n  for (c3_i48 = 0; c3_i48 < 15; c3_i48++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i48], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  for (c3_i49 = 0; c3_i49 < 3; c3_i49++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff[c3_i49], 34U);\r\n  }\r\n\r\n  for (c3_i50 = 0; c3_i50 < 2; c3_i50++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff[c3_i50], 35U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i51 = 0; c3_i51 < 49; c3_i51++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i51], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i52 = 0; c3_i52 < 5; c3_i52++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i52], 50U);\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 49; c3_i53++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i53], 51U);\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 126; c3_i54++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i54], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i55 = 0; c3_i55 < 25; c3_i55++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i55], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  int32_T c3_i56;\r\n  real_T c3_rseq[10];\r\n  int32_T c3_i57;\r\n  real_T c3_vseq[6];\r\n  int32_T c3_i58;\r\n  real_T c3_x[7];\r\n  int32_T c3_i59;\r\n  real_T c3_old_u[3];\r\n  int32_T c3_i60;\r\n  boolean_T c3_iA[25];\r\n  int32_T c3_i61;\r\n  real_T c3_umin[3];\r\n  int32_T c3_i62;\r\n  real_T c3_umax[3];\r\n  int32_T c3_i63;\r\n  real_T c3_ymin[2];\r\n  int32_T c3_i64;\r\n  real_T c3_ymax[2];\r\n  real_T c3_switch_in;\r\n  int32_T c3_i65;\r\n  real_T c3_ywt[2];\r\n  int32_T c3_i66;\r\n  real_T c3_duwt[3];\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[49];\r\n  real_T c3_c_Kx[42];\r\n  real_T c3_c_Ku1[18];\r\n  real_T c3_c_Kut[90];\r\n  real_T c3_c_Kr[60];\r\n  real_T c3_c_Kv[36];\r\n  real_T c3_c_Mlim[18];\r\n  real_T c3_c_Mx[126];\r\n  real_T c3_c_Mu1[54];\r\n  real_T c3_c_Mv[108];\r\n  real_T c3_c_z_degrees[7];\r\n  real_T c3_c_utarget[15];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff[3];\r\n  real_T c3_c_yoff[2];\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[49];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[5];\r\n  real_T c3_c_Linv[49];\r\n  real_T c3_c_Ac[126];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u[3];\r\n  real_T c3_cost;\r\n  real_T c3_useq[15];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[25];\r\n  int32_T c3_i67;\r\n  static real_T c3_d_Ac[126] = { -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, -0.0,\r\n    -0.0, 1.0, -0.0, -0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0, -1.0, -0.0, -0.0,\r\n    -1.0, -0.0, -0.0, 1.0, -0.0, -0.0, 1.0, -0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    -0.0, -0.0, -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, -0.0, -0.0, 1.0, 0.0,\r\n    0.0, 1.0, 0.0, 0.0, 0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0,\r\n    -0.0, 1.0, -0.0, -0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -0.0, -0.0, -0.0, -0.0,\r\n    -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, 1.0, -0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,\r\n    -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, 1.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i68;\r\n  static real_T c3_d_Linv[49] = { 0.890943967335334, -0.3765340064257745,\r\n    -0.081968447195651231, -3.5489218669425688, -0.0066855072825415121,\r\n    0.10307825269687318, 0.0, 0.0, 0.79076149529618434, -1.4524456148865079,\r\n    0.37621263709139358, -2.9239965883035133, 0.4669122777910914, 0.0, 0.0, 0.0,\r\n    5.1774615543769276, -0.55386901645657516, -4.1318677662181926,\r\n    -3.4991992981439579, 0.0, 0.0, 0.0, 0.0, 4.6605654371565022,\r\n    -0.041083569621348015, -0.15597566320059042, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    5.5702072264245217, -0.95560346771331672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    8.8039367573053688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.003162277660168379\r\n  };\r\n\r\n  int32_T c3_i69;\r\n  static real_T c3_d_blocking_moves[5] = { 1.0, 1.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i70;\r\n  static real_T c3_d_H[49] = { 1.2597930755942788, 0.59987105700346466,\r\n    0.188228026070508, 0.93325195233225344, 0.46291238552612662,\r\n    0.095028876539678384, 0.0, 0.59987105700346466, 1.8848612022853453,\r\n    0.53826162835208624, 0.36860620668000732, 1.3921398940378122,\r\n    0.2645877164403112, 0.0, 0.188228026070508, 0.53826162835208624,\r\n    0.19128473163107027, 0.12261439624071246, 0.42557379326757072,\r\n    0.09364275287343965, 0.0, 0.93325195233225344, 0.36860620668000732,\r\n    0.12261439624071246, 0.74150713022437431, 0.29103635087465185,\r\n    0.062985445368814619, 0.0, 0.46291238552612662, 1.3921398940378122,\r\n    0.42557379326757072, 0.29103635087465185, 1.0813969472131397,\r\n    0.21243057759953443, 0.0, 0.095028876539678384, 0.2645877164403112,\r\n    0.09364275287343965, 0.062985445368814619, 0.21243057759953443,\r\n    0.059149576937758908, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 100000.0 };\r\n\r\n  int32_T c3_i71;\r\n  int32_T c3_i72;\r\n  int32_T c3_i73;\r\n  int32_T c3_i74;\r\n  int32_T c3_i75;\r\n  int32_T c3_i76;\r\n  static real_T c3_d_Mu1[54] = { -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, 0.0,\r\n    0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0, -1.0, -0.0, -0.0,\r\n    -1.0, -0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0,\r\n    -0.0, -1.0, -0.0, -0.0, -1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i77;\r\n  int32_T c3_i78;\r\n  static real_T c3_d_Mlim[18] = { 3.0, 2.0, 2.0, 3.0, 2.0, 2.0, 3.0, 2.0, 2.0,\r\n    3.0, 2.0, 2.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0 };\r\n\r\n  int32_T c3_i79;\r\n  int32_T c3_i80;\r\n  static real_T c3_d_Kr[60] = { -0.18126924692564353, -0.018671577551657329,\r\n    -0.32967995397095429, -0.069478267418748366, -0.45118836391499728,\r\n    -0.14501667000509094, -0.55067103589379174, -0.23863046066526389,\r\n    -0.6321205588412, -0.34454251473540026, -0.0, -0.19879234322843986, -0.0,\r\n    -0.39123188951446553, -0.0, -0.573089746155531, -0.0, -0.74187890047177918,\r\n    -0.0, -0.89636167648567255, -0.0, -0.0037930220744868356, -0.0,\r\n    -0.0286066973859312, -0.0, -0.0905407277861537, -0.0, -0.20029783672802043,\r\n    -0.0, -0.36350399542963946, -0.0, -0.0, -0.18126924692564353,\r\n    -0.018671577551657329, -0.32967995397095429, -0.069478267418748366,\r\n    -0.45118836391499728, -0.14501667000509094, -0.55067103589379174,\r\n    -0.23863046066526389, -0.0, -0.0, -0.0, -0.19879234322843986, -0.0,\r\n    -0.39123188951446553, -0.0, -0.573089746155531, -0.0, -0.74187890047177918,\r\n    -0.0, -0.0, -0.0, -0.0037930220744868356, -0.0, -0.0286066973859312, -0.0,\r\n    -0.0905407277861537, -0.0, -0.20029783672802043 };\r\n\r\n  int32_T c3_i81;\r\n  int32_T c3_i82;\r\n  static real_T c3_d_Ku1[18] = { 1.2497930755942788, 0.59987105700346466,\r\n    0.18822802607050804, 0.59987105700346466, 1.8748612022853453,\r\n    0.53826162835208624, 0.188228026070508, 0.53826162835208624,\r\n    0.18128473163107026, 0.93325195233225344, 0.36860620668000732,\r\n    0.12261439624071246, 0.46291238552612662, 1.3921398940378122,\r\n    0.42557379326757072, 0.095028876539678384, 0.2645877164403112,\r\n    0.09364275287343965 };\r\n\r\n  int32_T c3_i83;\r\n  static real_T c3_d_Kx[42] = { 1.4950071410106682, 0.65738773217961954,\r\n    1.0328079237488559, 0.567234842535362, 1.6113851449398879,\r\n    2.1449291595465869, 0.81633949037616071, 1.2749901453193779,\r\n    2.3252208946601427, 3.7278479094264276, 1.6924216567122496,\r\n    5.0863219785039542, 0.0, 2.8013545558558883, 0.35003360229234354,\r\n    0.53952675278459827, 0.83522293045637619, 0.52699933031000479,\r\n    1.4335001534251903, 0.0, 0.68674227940423171, 0.94816285509076892,\r\n    0.37139389963332908, 0.57498774460151314, 0.35923583049728058,\r\n    0.98320422379931072, 1.5128086007053869, 0.47179697564076051,\r\n    0.92922750853952851, 1.5394509413528972, 2.4178458647026169,\r\n    1.3029118393594785, 3.7508458888458702, 0.0, 1.9049928793702156,\r\n    0.16955883990592463, 0.24927859671174418, 0.3818888515088727,\r\n    0.26533887117500837, 0.70012039644749491, 0.0, 0.3232382839745922 };\r\n\r\n  int32_T c3_i84;\r\n  static real_T c3_d_Hinv[49] = { 13.54779407711173, -1.4461662344138515,\r\n    1.2081816624479997, -16.555785626563523, -0.13574159670048805,\r\n    0.90749441779681306, 0.0, -1.4461662344138515, 11.644201078516016,\r\n    2.7193942828192741, 1.800664878672839, -16.733449917983965,\r\n    4.110666164882165, 0.0, 1.2081816624479997, 2.7193942828192741,\r\n    56.429606000085812, -1.8658009865707068, -19.671512706492752,\r\n    -30.80672932206674, 0.0, -16.555785626563523, 1.800664878672839,\r\n    -1.8658009865707068, 21.746886461221475, -0.0797931117587791,\r\n    -1.3731998744967604, 0.0, -0.13574159670048805, -16.733449917983965,\r\n    -19.671512706492752, -0.0797931117587791, 31.94038653281768,\r\n    -8.4130724948097431, 0.0, 0.90749441779681306, 4.110666164882165,\r\n    -30.80672932206674, -1.3731998744967604, -8.4130724948097431,\r\n    77.509302426632573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.9999999999999974E-6\r\n  };\r\n\r\n  int32_T c3_i85;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i86;\r\n  int32_T c3_i87;\r\n  int32_T c3_i88;\r\n  int32_T c3_i89;\r\n  real_T c3_b_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i90;\r\n  real_T c3_c_u[6];\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i91;\r\n  real_T c3_d_u[3];\r\n  const mxArray *c3_c_y = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_e_u[3];\r\n  const mxArray *c3_d_y = NULL;\r\n  int32_T c3_i93;\r\n  real_T c3_f_u[2];\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i94;\r\n  real_T c3_g_u[2];\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_i_u[7];\r\n  const mxArray *c3_h_y = NULL;\r\n  int32_T c3_i96;\r\n  real_T c3_j_u[3];\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i97;\r\n  boolean_T c3_k_u[25];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i98;\r\n  real_T c3_p_u[49];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i99;\r\n  real_T c3_q_u[42];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i100;\r\n  real_T c3_r_u[18];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i101;\r\n  real_T c3_s_u[90];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i102;\r\n  real_T c3_t_u[60];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i103;\r\n  real_T c3_u_u[36];\r\n  const mxArray *c3_t_y = NULL;\r\n  int32_T c3_i104;\r\n  real_T c3_v_u[18];\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i105;\r\n  real_T c3_w_u[126];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i106;\r\n  real_T c3_x_u[54];\r\n  const mxArray *c3_w_y = NULL;\r\n  int32_T c3_i107;\r\n  real_T c3_y_u[108];\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i108;\r\n  real_T c3_ab_u[7];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i109;\r\n  real_T c3_bb_u[15];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  int32_T c3_i110;\r\n  real_T c3_db_u[3];\r\n  const mxArray *c3_cb_y = NULL;\r\n  int32_T c3_i111;\r\n  real_T c3_eb_u[2];\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i112;\r\n  real_T c3_rb_u[49];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i113;\r\n  real_T c3_tb_u[5];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i114;\r\n  real_T c3_ub_u[49];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i115;\r\n  real_T c3_vb_u[126];\r\n  const mxArray *c3_ub_y = NULL;\r\n  int32_T c3_i116;\r\n  real_T c3_wb_u[2];\r\n  const mxArray *c3_vb_y = NULL;\r\n  int32_T c3_i117;\r\n  real_T c3_xb_u[3];\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv20[3];\r\n  int32_T c3_i118;\r\n  real_T c3_dv21[15];\r\n  int32_T c3_i119;\r\n  boolean_T c3_bv1[25];\r\n  int32_T c3_i120;\r\n  int32_T c3_i121;\r\n  int32_T c3_i122;\r\n  int32_T c3_i123;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_pc_u)[3];\r\n  real_T (*c3_c_useq)[15];\r\n  boolean_T (*c3_c_iAout)[25];\r\n  real_T (*c3_b_duwt)[3];\r\n  real_T (*c3_b_ywt)[2];\r\n  real_T (*c3_b_ymax)[2];\r\n  real_T (*c3_b_ymin)[2];\r\n  real_T (*c3_b_umax)[3];\r\n  real_T (*c3_b_umin)[3];\r\n  boolean_T (*c3_b_iA)[25];\r\n  real_T (*c3_b_old_u)[3];\r\n  real_T (*c3_b_x)[7];\r\n  real_T (*c3_b_vseq)[6];\r\n  real_T (*c3_b_rseq)[10];\r\n  c3_c_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[25])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[7])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_switch_in;\r\n  c3_b_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i56 = 0; c3_i56 < 10; c3_i56++) {\r\n    c3_rseq[c3_i56] = (*c3_b_rseq)[c3_i56];\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 6; c3_i57++) {\r\n    c3_vseq[c3_i57] = (*c3_b_vseq)[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 7; c3_i58++) {\r\n    c3_x[c3_i58] = (*c3_b_x)[c3_i58];\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 3; c3_i59++) {\r\n    c3_old_u[c3_i59] = (*c3_b_old_u)[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 25; c3_i60++) {\r\n    c3_iA[c3_i60] = (*c3_b_iA)[c3_i60];\r\n  }\r\n\r\n  for (c3_i61 = 0; c3_i61 < 3; c3_i61++) {\r\n    c3_umin[c3_i61] = (*c3_b_umin)[c3_i61];\r\n  }\r\n\r\n  for (c3_i62 = 0; c3_i62 < 3; c3_i62++) {\r\n    c3_umax[c3_i62] = (*c3_b_umax)[c3_i62];\r\n  }\r\n\r\n  for (c3_i63 = 0; c3_i63 < 2; c3_i63++) {\r\n    c3_ymin[c3_i63] = (*c3_b_ymin)[c3_i63];\r\n  }\r\n\r\n  for (c3_i64 = 0; c3_i64 < 2; c3_i64++) {\r\n    c3_ymax[c3_i64] = (*c3_b_ymax)[c3_i64];\r\n  }\r\n\r\n  c3_switch_in = c3_hoistedGlobal;\r\n  for (c3_i65 = 0; c3_i65 < 2; c3_i65++) {\r\n    c3_ywt[c3_i65] = (*c3_b_ywt)[c3_i65];\r\n  }\r\n\r\n  for (c3_i66 = 0; c3_i66 < 3; c3_i66++) {\r\n    c3_duwt[c3_i66] = (*c3_b_duwt)[c3_i66];\r\n  }\r\n\r\n  c3_rhoeps = c3_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_v_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_u_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_t_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_s_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mlim, 11U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mv, 14U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_uoff, 18U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_yoff, 19U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_old_u, 56U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_umin, 58U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_umax, 59U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ymin, 60U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ymax, 61U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ywt, 63U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_duwt, 64U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_u, 66U, c3_d_sf_marshallOut,\r\n    c3_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i67 = 0; c3_i67 < 126; c3_i67++) {\r\n    c3_c_Ac[c3_i67] = c3_d_Ac[c3_i67];\r\n  }\r\n\r\n  for (c3_i68 = 0; c3_i68 < 49; c3_i68++) {\r\n    c3_c_Linv[c3_i68] = c3_d_Linv[c3_i68];\r\n  }\r\n\r\n  for (c3_i69 = 0; c3_i69 < 5; c3_i69++) {\r\n    c3_c_blocking_moves[c3_i69] = c3_d_blocking_moves[c3_i69];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i70 = 0; c3_i70 < 49; c3_i70++) {\r\n    c3_c_H[c3_i70] = c3_d_H[c3_i70];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  for (c3_i71 = 0; c3_i71 < 2; c3_i71++) {\r\n    c3_c_yoff[c3_i71] = 0.0;\r\n  }\r\n\r\n  for (c3_i72 = 0; c3_i72 < 3; c3_i72++) {\r\n    c3_c_uoff[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i73 = 0; c3_i73 < 15; c3_i73++) {\r\n    c3_c_utarget[c3_i73] = 0.0;\r\n  }\r\n\r\n  for (c3_i74 = 0; c3_i74 < 7; c3_i74++) {\r\n    c3_c_z_degrees[c3_i74] = 0.0;\r\n  }\r\n\r\n  for (c3_i75 = 0; c3_i75 < 108; c3_i75++) {\r\n    c3_c_Mv[c3_i75] = 0.0;\r\n  }\r\n\r\n  for (c3_i76 = 0; c3_i76 < 54; c3_i76++) {\r\n    c3_c_Mu1[c3_i76] = c3_d_Mu1[c3_i76];\r\n  }\r\n\r\n  for (c3_i77 = 0; c3_i77 < 126; c3_i77++) {\r\n    c3_c_Mx[c3_i77] = 0.0;\r\n  }\r\n\r\n  for (c3_i78 = 0; c3_i78 < 18; c3_i78++) {\r\n    c3_c_Mlim[c3_i78] = c3_d_Mlim[c3_i78];\r\n  }\r\n\r\n  for (c3_i79 = 0; c3_i79 < 36; c3_i79++) {\r\n    c3_c_Kv[c3_i79] = 0.0;\r\n  }\r\n\r\n  for (c3_i80 = 0; c3_i80 < 60; c3_i80++) {\r\n    c3_c_Kr[c3_i80] = c3_d_Kr[c3_i80];\r\n  }\r\n\r\n  for (c3_i81 = 0; c3_i81 < 90; c3_i81++) {\r\n    c3_c_Kut[c3_i81] = 0.0;\r\n  }\r\n\r\n  for (c3_i82 = 0; c3_i82 < 18; c3_i82++) {\r\n    c3_c_Ku1[c3_i82] = c3_d_Ku1[c3_i82];\r\n  }\r\n\r\n  for (c3_i83 = 0; c3_i83 < 42; c3_i83++) {\r\n    c3_c_Kx[c3_i83] = c3_d_Kx[c3_i83];\r\n  }\r\n\r\n  for (c3_i84 = 0; c3_i84 < 49; c3_i84++) {\r\n    c3_c_Hinv[c3_i84] = c3_d_Hinv[c3_i84];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i85 = 0; c3_i85 < 6; c3_i85++) {\r\n    c3_DataType[c3_i85] = c3_cv0[c3_i85];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  for (c3_i86 = 0; c3_i86 < 3; c3_i86++) {\r\n    c3_u[c3_i86] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i87 = 0; c3_i87 < 15; c3_i87++) {\r\n    c3_useq[c3_i87] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i88 = 0; c3_i88 < 25; c3_i88++) {\r\n    c3_iAout[c3_i88] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i89 = 0; c3_i89 < 10; c3_i89++) {\r\n    c3_b_u[c3_i89] = c3_rseq[c3_i89];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  for (c3_i90 = 0; c3_i90 < 6; c3_i90++) {\r\n    c3_c_u[c3_i90] = c3_vseq[c3_i90];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i91 = 0; c3_i91 < 3; c3_i91++) {\r\n    c3_d_u[c3_i91] = c3_umin[c3_i91];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_d_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i92 = 0; c3_i92 < 3; c3_i92++) {\r\n    c3_e_u[c3_i92] = c3_umax[c3_i92];\r\n  }\r\n\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i93 = 0; c3_i93 < 2; c3_i93++) {\r\n    c3_f_u[c3_i93] = c3_ymin[c3_i93];\r\n  }\r\n\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", c3_f_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  for (c3_i94 = 0; c3_i94 < 2; c3_i94++) {\r\n    c3_g_u[c3_i94] = c3_ymax[c3_i94];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_g_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i95 = 0; c3_i95 < 7; c3_i95++) {\r\n    c3_i_u[c3_i95] = c3_x[c3_i95];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 7), FALSE);\r\n  for (c3_i96 = 0; c3_i96 < 3; c3_i96++) {\r\n    c3_j_u[c3_i96] = c3_old_u[c3_i96];\r\n  }\r\n\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", c3_j_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i97 = 0; c3_i97 < 25; c3_i97++) {\r\n    c3_k_u[c3_i97] = c3_iA[c3_i97];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 25),\r\n                FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i98 = 0; c3_i98 < 49; c3_i98++) {\r\n    c3_p_u[c3_i98] = c3_d_Hinv[c3_i98];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 7, 7),\r\n                FALSE);\r\n  for (c3_i99 = 0; c3_i99 < 42; c3_i99++) {\r\n    c3_q_u[c3_i99] = c3_d_Kx[c3_i99];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 7, 6),\r\n                FALSE);\r\n  for (c3_i100 = 0; c3_i100 < 18; c3_i100++) {\r\n    c3_r_u[c3_i100] = c3_d_Ku1[c3_i100];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 3, 6),\r\n                FALSE);\r\n  for (c3_i101 = 0; c3_i101 < 90; c3_i101++) {\r\n    c3_s_u[c3_i101] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 15, 6),\r\n                FALSE);\r\n  for (c3_i102 = 0; c3_i102 < 60; c3_i102++) {\r\n    c3_t_u[c3_i102] = c3_d_Kr[c3_i102];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 10, 6),\r\n                FALSE);\r\n  for (c3_i103 = 0; c3_i103 < 36; c3_i103++) {\r\n    c3_u_u[c3_i103] = 0.0;\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 6, 6),\r\n                FALSE);\r\n  for (c3_i104 = 0; c3_i104 < 18; c3_i104++) {\r\n    c3_v_u[c3_i104] = c3_d_Mlim[c3_i104];\r\n  }\r\n\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", c3_v_u, 0, 0U, 1U, 0U, 1, 18), FALSE);\r\n  for (c3_i105 = 0; c3_i105 < 126; c3_i105++) {\r\n    c3_w_u[c3_i105] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 18, 7),\r\n                FALSE);\r\n  for (c3_i106 = 0; c3_i106 < 54; c3_i106++) {\r\n    c3_x_u[c3_i106] = c3_d_Mu1[c3_i106];\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 2, 18, 3),\r\n                FALSE);\r\n  for (c3_i107 = 0; c3_i107 < 108; c3_i107++) {\r\n    c3_y_u[c3_i107] = 0.0;\r\n  }\r\n\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", c3_y_u, 0, 0U, 1U, 0U, 2, 18, 6),\r\n                FALSE);\r\n  for (c3_i108 = 0; c3_i108 < 7; c3_i108++) {\r\n    c3_ab_u[c3_i108] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 7), FALSE);\r\n  for (c3_i109 = 0; c3_i109 < 15; c3_i109++) {\r\n    c3_bb_u[c3_i109] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 15),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i110 = 0; c3_i110 < 3; c3_i110++) {\r\n    c3_db_u[c3_i110] = 0.0;\r\n  }\r\n\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", c3_db_u, 0, 0U, 1U, 0U, 1, 3),\r\n                FALSE);\r\n  for (c3_i111 = 0; c3_i111 < 2; c3_i111++) {\r\n    c3_eb_u[c3_i111] = 0.0;\r\n  }\r\n\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", c3_eb_u, 0, 0U, 1U, 0U, 1, 2),\r\n                FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i112 = 0; c3_i112 < 49; c3_i112++) {\r\n    c3_rb_u[c3_i112] = c3_d_H[c3_i112];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 7, 7),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i113 = 0; c3_i113 < 5; c3_i113++) {\r\n    c3_tb_u[c3_i113] = c3_d_blocking_moves[c3_i113];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 5),\r\n                FALSE);\r\n  for (c3_i114 = 0; c3_i114 < 49; c3_i114++) {\r\n    c3_ub_u[c3_i114] = c3_d_Linv[c3_i114];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 7, 7),\r\n                FALSE);\r\n  for (c3_i115 = 0; c3_i115 < 126; c3_i115++) {\r\n    c3_vb_u[c3_i115] = c3_d_Ac[c3_i115];\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 18, 7),\r\n                FALSE);\r\n  for (c3_i116 = 0; c3_i116 < 2; c3_i116++) {\r\n    c3_wb_u[c3_i116] = c3_ywt[c3_i116];\r\n  }\r\n\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", c3_wb_u, 0, 0U, 1U, 0U, 1, 2),\r\n                FALSE);\r\n  for (c3_i117 = 0; c3_i117 < 3; c3_i117++) {\r\n    c3_xb_u[c3_i117] = c3_duwt[c3_i117];\r\n  }\r\n\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", c3_xb_u, 0, 0U, 1U, 0U, 1, 3),\r\n                FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\", c3_dv20);\r\n  for (c3_i118 = 0; c3_i118 < 3; c3_i118++) {\r\n    c3_u[c3_i118] = c3_dv20[c3_i118];\r\n  }\r\n\r\n  c3_cost = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv21);\r\n  for (c3_i119 = 0; c3_i119 < 15; c3_i119++) {\r\n    c3_useq[c3_i119] = c3_dv21[c3_i119];\r\n  }\r\n\r\n  c3_status = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i120 = 0; c3_i120 < 25; c3_i120++) {\r\n    c3_iAout[c3_i120] = c3_bv1[c3_i120];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  for (c3_i121 = 0; c3_i121 < 3; c3_i121++) {\r\n    (*c3_pc_u)[c3_i121] = c3_u[c3_i121];\r\n  }\r\n\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i122 = 0; c3_i122 < 15; c3_i122++) {\r\n    (*c3_c_useq)[c3_i122] = c3_useq[c3_i122];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i123 = 0; c3_i123 < 25; c3_i123++) {\r\n    (*c3_c_iAout)[c3_i123] = c3_iAout[c3_i123];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i124;\r\n  boolean_T c3_b_inData[25];\r\n  int32_T c3_i125;\r\n  boolean_T c3_u[25];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i124 = 0; c3_i124 < 25; c3_i124++) {\r\n    c3_b_inData[c3_i124] = (*(boolean_T (*)[25])c3_inData)[c3_i124];\r\n  }\r\n\r\n  for (c3_i125 = 0; c3_i125 < 25; c3_i125++) {\r\n    c3_u[c3_i125] = c3_b_inData[c3_i125];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 25), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[25];\r\n  int32_T c3_i126;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i126 = 0; c3_i126 < 25; c3_i126++) {\r\n    (*(boolean_T (*)[25])c3_outData)[c3_i126] = c3_y[c3_i126];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_cost;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_cost = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_cost), &c3_thisId);\r\n  sf_mex_destroy(&c3_cost);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i127;\r\n  int32_T c3_i128;\r\n  int32_T c3_i129;\r\n  real_T c3_b_inData[15];\r\n  int32_T c3_i130;\r\n  int32_T c3_i131;\r\n  int32_T c3_i132;\r\n  real_T c3_u[15];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i127 = 0;\r\n  for (c3_i128 = 0; c3_i128 < 3; c3_i128++) {\r\n    for (c3_i129 = 0; c3_i129 < 5; c3_i129++) {\r\n      c3_b_inData[c3_i129 + c3_i127] = (*(real_T (*)[15])c3_inData)[c3_i129 +\r\n        c3_i127];\r\n    }\r\n\r\n    c3_i127 += 5;\r\n  }\r\n\r\n  c3_i130 = 0;\r\n  for (c3_i131 = 0; c3_i131 < 3; c3_i131++) {\r\n    for (c3_i132 = 0; c3_i132 < 5; c3_i132++) {\r\n      c3_u[c3_i132 + c3_i130] = c3_b_inData[c3_i132 + c3_i130];\r\n    }\r\n\r\n    c3_i130 += 5;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 5, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[15];\r\n  int32_T c3_i133;\r\n  int32_T c3_i134;\r\n  int32_T c3_i135;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  c3_i133 = 0;\r\n  for (c3_i134 = 0; c3_i134 < 3; c3_i134++) {\r\n    for (c3_i135 = 0; c3_i135 < 5; c3_i135++) {\r\n      (*(real_T (*)[15])c3_outData)[c3_i135 + c3_i133] = c3_y[c3_i135 + c3_i133];\r\n    }\r\n\r\n    c3_i133 += 5;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i136;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i137;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i136 = 0; c3_i136 < 3; c3_i136++) {\r\n    c3_b_inData[c3_i136] = (*(real_T (*)[3])c3_inData)[c3_i136];\r\n  }\r\n\r\n  for (c3_i137 = 0; c3_i137 < 3; c3_i137++) {\r\n    c3_u[c3_i137] = c3_b_inData[c3_i137];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i138;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_u);\r\n  for (c3_i138 = 0; c3_i138 < 3; c3_i138++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i138] = c3_y[c3_i138];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i139;\r\n  real_T c3_b_inData[2];\r\n  int32_T c3_i140;\r\n  real_T c3_u[2];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i139 = 0; c3_i139 < 2; c3_i139++) {\r\n    c3_b_inData[c3_i139] = (*(real_T (*)[2])c3_inData)[c3_i139];\r\n  }\r\n\r\n  for (c3_i140 = 0; c3_i140 < 2; c3_i140++) {\r\n    c3_u[c3_i140] = c3_b_inData[c3_i140];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  real_T c3_b_inData[7];\r\n  int32_T c3_i142;\r\n  real_T c3_u[7];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i141 = 0; c3_i141 < 7; c3_i141++) {\r\n    c3_b_inData[c3_i141] = (*(real_T (*)[7])c3_inData)[c3_i141];\r\n  }\r\n\r\n  for (c3_i142 = 0; c3_i142 < 7; c3_i142++) {\r\n    c3_u[c3_i142] = c3_b_inData[c3_i142];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i143;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i144;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i143 = 0; c3_i143 < 6; c3_i143++) {\r\n    c3_b_inData[c3_i143] = (*(real_T (*)[6])c3_inData)[c3_i143];\r\n  }\r\n\r\n  for (c3_i144 = 0; c3_i144 < 6; c3_i144++) {\r\n    c3_u[c3_i144] = c3_b_inData[c3_i144];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i145;\r\n  real_T c3_b_inData[10];\r\n  int32_T c3_i146;\r\n  real_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i145 = 0; c3_i145 < 10; c3_i145++) {\r\n    c3_b_inData[c3_i145] = (*(real_T (*)[10])c3_inData)[c3_i145];\r\n  }\r\n\r\n  for (c3_i146 = 0; c3_i146 < 10; c3_i146++) {\r\n    c3_u[c3_i146] = c3_b_inData[c3_i146];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i147;\r\n  int32_T c3_i148;\r\n  int32_T c3_i149;\r\n  real_T c3_b_inData[126];\r\n  int32_T c3_i150;\r\n  int32_T c3_i151;\r\n  int32_T c3_i152;\r\n  real_T c3_u[126];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i147 = 0;\r\n  for (c3_i148 = 0; c3_i148 < 7; c3_i148++) {\r\n    for (c3_i149 = 0; c3_i149 < 18; c3_i149++) {\r\n      c3_b_inData[c3_i149 + c3_i147] = (*(real_T (*)[126])c3_inData)[c3_i149 +\r\n        c3_i147];\r\n    }\r\n\r\n    c3_i147 += 18;\r\n  }\r\n\r\n  c3_i150 = 0;\r\n  for (c3_i151 = 0; c3_i151 < 7; c3_i151++) {\r\n    for (c3_i152 = 0; c3_i152 < 18; c3_i152++) {\r\n      c3_u[c3_i152 + c3_i150] = c3_b_inData[c3_i152 + c3_i150];\r\n    }\r\n\r\n    c3_i150 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i153;\r\n  int32_T c3_i154;\r\n  int32_T c3_i155;\r\n  real_T c3_b_inData[49];\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  int32_T c3_i158;\r\n  real_T c3_u[49];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i153 = 0;\r\n  for (c3_i154 = 0; c3_i154 < 7; c3_i154++) {\r\n    for (c3_i155 = 0; c3_i155 < 7; c3_i155++) {\r\n      c3_b_inData[c3_i155 + c3_i153] = (*(real_T (*)[49])c3_inData)[c3_i155 +\r\n        c3_i153];\r\n    }\r\n\r\n    c3_i153 += 7;\r\n  }\r\n\r\n  c3_i156 = 0;\r\n  for (c3_i157 = 0; c3_i157 < 7; c3_i157++) {\r\n    for (c3_i158 = 0; c3_i158 < 7; c3_i158++) {\r\n      c3_u[c3_i158 + c3_i156] = c3_b_inData[c3_i158 + c3_i156];\r\n    }\r\n\r\n    c3_i156 += 7;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 7, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i159;\r\n  real_T c3_b_inData[5];\r\n  int32_T c3_i160;\r\n  real_T c3_u[5];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i159 = 0; c3_i159 < 5; c3_i159++) {\r\n    c3_b_inData[c3_i159] = (*(real_T (*)[5])c3_inData)[c3_i159];\r\n  }\r\n\r\n  for (c3_i160 = 0; c3_i160 < 5; c3_i160++) {\r\n    c3_u[c3_i160] = c3_b_inData[c3_i160];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 5), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i161;\r\n  real_T c3_b_inData[15];\r\n  int32_T c3_i162;\r\n  real_T c3_u[15];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i161 = 0; c3_i161 < 15; c3_i161++) {\r\n    c3_b_inData[c3_i161] = (*(real_T (*)[15])c3_inData)[c3_i161];\r\n  }\r\n\r\n  for (c3_i162 = 0; c3_i162 < 15; c3_i162++) {\r\n    c3_u[c3_i162] = c3_b_inData[c3_i162];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 15), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i163;\r\n  int32_T c3_i164;\r\n  int32_T c3_i165;\r\n  real_T c3_b_inData[108];\r\n  int32_T c3_i166;\r\n  int32_T c3_i167;\r\n  int32_T c3_i168;\r\n  real_T c3_u[108];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i163 = 0;\r\n  for (c3_i164 = 0; c3_i164 < 6; c3_i164++) {\r\n    for (c3_i165 = 0; c3_i165 < 18; c3_i165++) {\r\n      c3_b_inData[c3_i165 + c3_i163] = (*(real_T (*)[108])c3_inData)[c3_i165 +\r\n        c3_i163];\r\n    }\r\n\r\n    c3_i163 += 18;\r\n  }\r\n\r\n  c3_i166 = 0;\r\n  for (c3_i167 = 0; c3_i167 < 6; c3_i167++) {\r\n    for (c3_i168 = 0; c3_i168 < 18; c3_i168++) {\r\n      c3_u[c3_i168 + c3_i166] = c3_b_inData[c3_i168 + c3_i166];\r\n    }\r\n\r\n    c3_i166 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i169;\r\n  int32_T c3_i170;\r\n  int32_T c3_i171;\r\n  real_T c3_b_inData[54];\r\n  int32_T c3_i172;\r\n  int32_T c3_i173;\r\n  int32_T c3_i174;\r\n  real_T c3_u[54];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i169 = 0;\r\n  for (c3_i170 = 0; c3_i170 < 3; c3_i170++) {\r\n    for (c3_i171 = 0; c3_i171 < 18; c3_i171++) {\r\n      c3_b_inData[c3_i171 + c3_i169] = (*(real_T (*)[54])c3_inData)[c3_i171 +\r\n        c3_i169];\r\n    }\r\n\r\n    c3_i169 += 18;\r\n  }\r\n\r\n  c3_i172 = 0;\r\n  for (c3_i173 = 0; c3_i173 < 3; c3_i173++) {\r\n    for (c3_i174 = 0; c3_i174 < 18; c3_i174++) {\r\n      c3_u[c3_i174 + c3_i172] = c3_b_inData[c3_i174 + c3_i172];\r\n    }\r\n\r\n    c3_i172 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i175;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i176;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i175 = 0; c3_i175 < 18; c3_i175++) {\r\n    c3_b_inData[c3_i175] = (*(real_T (*)[18])c3_inData)[c3_i175];\r\n  }\r\n\r\n  for (c3_i176 = 0; c3_i176 < 18; c3_i176++) {\r\n    c3_u[c3_i176] = c3_b_inData[c3_i176];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 18), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i177;\r\n  int32_T c3_i178;\r\n  int32_T c3_i179;\r\n  real_T c3_b_inData[36];\r\n  int32_T c3_i180;\r\n  int32_T c3_i181;\r\n  int32_T c3_i182;\r\n  real_T c3_u[36];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i177 = 0;\r\n  for (c3_i178 = 0; c3_i178 < 6; c3_i178++) {\r\n    for (c3_i179 = 0; c3_i179 < 6; c3_i179++) {\r\n      c3_b_inData[c3_i179 + c3_i177] = (*(real_T (*)[36])c3_inData)[c3_i179 +\r\n        c3_i177];\r\n    }\r\n\r\n    c3_i177 += 6;\r\n  }\r\n\r\n  c3_i180 = 0;\r\n  for (c3_i181 = 0; c3_i181 < 6; c3_i181++) {\r\n    for (c3_i182 = 0; c3_i182 < 6; c3_i182++) {\r\n      c3_u[c3_i182 + c3_i180] = c3_b_inData[c3_i182 + c3_i180];\r\n    }\r\n\r\n    c3_i180 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i183;\r\n  int32_T c3_i184;\r\n  int32_T c3_i185;\r\n  real_T c3_b_inData[60];\r\n  int32_T c3_i186;\r\n  int32_T c3_i187;\r\n  int32_T c3_i188;\r\n  real_T c3_u[60];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i183 = 0;\r\n  for (c3_i184 = 0; c3_i184 < 6; c3_i184++) {\r\n    for (c3_i185 = 0; c3_i185 < 10; c3_i185++) {\r\n      c3_b_inData[c3_i185 + c3_i183] = (*(real_T (*)[60])c3_inData)[c3_i185 +\r\n        c3_i183];\r\n    }\r\n\r\n    c3_i183 += 10;\r\n  }\r\n\r\n  c3_i186 = 0;\r\n  for (c3_i187 = 0; c3_i187 < 6; c3_i187++) {\r\n    for (c3_i188 = 0; c3_i188 < 10; c3_i188++) {\r\n      c3_u[c3_i188 + c3_i186] = c3_b_inData[c3_i188 + c3_i186];\r\n    }\r\n\r\n    c3_i186 += 10;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 10, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i189;\r\n  int32_T c3_i190;\r\n  int32_T c3_i191;\r\n  real_T c3_b_inData[90];\r\n  int32_T c3_i192;\r\n  int32_T c3_i193;\r\n  int32_T c3_i194;\r\n  real_T c3_u[90];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i189 = 0;\r\n  for (c3_i190 = 0; c3_i190 < 6; c3_i190++) {\r\n    for (c3_i191 = 0; c3_i191 < 15; c3_i191++) {\r\n      c3_b_inData[c3_i191 + c3_i189] = (*(real_T (*)[90])c3_inData)[c3_i191 +\r\n        c3_i189];\r\n    }\r\n\r\n    c3_i189 += 15;\r\n  }\r\n\r\n  c3_i192 = 0;\r\n  for (c3_i193 = 0; c3_i193 < 6; c3_i193++) {\r\n    for (c3_i194 = 0; c3_i194 < 15; c3_i194++) {\r\n      c3_u[c3_i194 + c3_i192] = c3_b_inData[c3_i194 + c3_i192];\r\n    }\r\n\r\n    c3_i192 += 15;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 15, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_t_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i195;\r\n  int32_T c3_i196;\r\n  int32_T c3_i197;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i198;\r\n  int32_T c3_i199;\r\n  int32_T c3_i200;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i195 = 0;\r\n  for (c3_i196 = 0; c3_i196 < 6; c3_i196++) {\r\n    for (c3_i197 = 0; c3_i197 < 3; c3_i197++) {\r\n      c3_b_inData[c3_i197 + c3_i195] = (*(real_T (*)[18])c3_inData)[c3_i197 +\r\n        c3_i195];\r\n    }\r\n\r\n    c3_i195 += 3;\r\n  }\r\n\r\n  c3_i198 = 0;\r\n  for (c3_i199 = 0; c3_i199 < 6; c3_i199++) {\r\n    for (c3_i200 = 0; c3_i200 < 3; c3_i200++) {\r\n      c3_u[c3_i200 + c3_i198] = c3_b_inData[c3_i200 + c3_i198];\r\n    }\r\n\r\n    c3_i198 += 3;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 3, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_u_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i201;\r\n  int32_T c3_i202;\r\n  int32_T c3_i203;\r\n  real_T c3_b_inData[42];\r\n  int32_T c3_i204;\r\n  int32_T c3_i205;\r\n  int32_T c3_i206;\r\n  real_T c3_u[42];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i201 = 0;\r\n  for (c3_i202 = 0; c3_i202 < 6; c3_i202++) {\r\n    for (c3_i203 = 0; c3_i203 < 7; c3_i203++) {\r\n      c3_b_inData[c3_i203 + c3_i201] = (*(real_T (*)[42])c3_inData)[c3_i203 +\r\n        c3_i201];\r\n    }\r\n\r\n    c3_i201 += 7;\r\n  }\r\n\r\n  c3_i204 = 0;\r\n  for (c3_i205 = 0; c3_i205 < 6; c3_i205++) {\r\n    for (c3_i206 = 0; c3_i206 < 7; c3_i206++) {\r\n      c3_u[c3_i206 + c3_i204] = c3_b_inData[c3_i206 + c3_i204];\r\n    }\r\n\r\n    c3_i204 += 7;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 7, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_v_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i207;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i208;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i207 = 0; c3_i207 < 6; c3_i207++) {\r\n    c3_b_inData[c3_i207] = (*(char_T (*)[6])c3_inData)[c3_i207];\r\n  }\r\n\r\n  for (c3_i208 = 0; c3_i208 < 6; c3_i208++) {\r\n    c3_u[c3_i208] = c3_b_inData[c3_i208];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic void c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c3_u, const char_T *c3_identifier, real_T c3_y[3])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv22[3];\r\n  int32_T c3_i209;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 1, 3);\r\n  for (c3_i209 = 0; c3_i209 < 3; c3_i209++) {\r\n    c3_y[c3_i209] = c3_dv22[c3_i209];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic real_T c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_cost, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_cost), &c3_thisId);\r\n  sf_mex_destroy(&c3_cost);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d32;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d32, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d32;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[15])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15])\r\n{\r\n  real_T c3_dv23[15];\r\n  int32_T c3_i210;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 5, 3);\r\n  for (c3_i210 = 0; c3_i210 < 15; c3_i210++) {\r\n    c3_y[c3_i210] = c3_dv23[c3_i210];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[25])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[25])\r\n{\r\n  boolean_T c3_bv2[25];\r\n  int32_T c3_i211;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 25);\r\n  for (c3_i211 = 0; c3_i211 < 25; c3_i211++) {\r\n    c3_y[c3_i211] = c3_bv2[c3_i211];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_w_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i212;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i212, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i212;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[49])\r\n{\r\n  real_T c3_dv24[49];\r\n  int32_T c3_i213;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i213 = 0; c3_i213 < 49; c3_i213++) {\r\n    c3_y[c3_i213] = c3_dv24[c3_i213];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[49];\r\n  int32_T c3_i214;\r\n  int32_T c3_i215;\r\n  int32_T c3_i216;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i214 = 0;\r\n  for (c3_i215 = 0; c3_i215 < 7; c3_i215++) {\r\n    for (c3_i216 = 0; c3_i216 < 7; c3_i216++) {\r\n      (*(real_T (*)[49])c3_outData)[c3_i216 + c3_i214] = c3_y[c3_i216 + c3_i214];\r\n    }\r\n\r\n    c3_i214 += 7;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[42])\r\n{\r\n  real_T c3_dv25[42];\r\n  int32_T c3_i217;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 7, 6);\r\n  for (c3_i217 = 0; c3_i217 < 42; c3_i217++) {\r\n    c3_y[c3_i217] = c3_dv25[c3_i217];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[42];\r\n  int32_T c3_i218;\r\n  int32_T c3_i219;\r\n  int32_T c3_i220;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i218 = 0;\r\n  for (c3_i219 = 0; c3_i219 < 6; c3_i219++) {\r\n    for (c3_i220 = 0; c3_i220 < 7; c3_i220++) {\r\n      (*(real_T (*)[42])c3_outData)[c3_i220 + c3_i218] = c3_y[c3_i220 + c3_i218];\r\n    }\r\n\r\n    c3_i218 += 7;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv26[18];\r\n  int32_T c3_i221;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 3, 6);\r\n  for (c3_i221 = 0; c3_i221 < 18; c3_i221++) {\r\n    c3_y[c3_i221] = c3_dv26[c3_i221];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i222;\r\n  int32_T c3_i223;\r\n  int32_T c3_i224;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  c3_i222 = 0;\r\n  for (c3_i223 = 0; c3_i223 < 6; c3_i223++) {\r\n    for (c3_i224 = 0; c3_i224 < 3; c3_i224++) {\r\n      (*(real_T (*)[18])c3_outData)[c3_i224 + c3_i222] = c3_y[c3_i224 + c3_i222];\r\n    }\r\n\r\n    c3_i222 += 3;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[90])\r\n{\r\n  real_T c3_dv27[90];\r\n  int32_T c3_i225;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 2, 15,\r\n                6);\r\n  for (c3_i225 = 0; c3_i225 < 90; c3_i225++) {\r\n    c3_y[c3_i225] = c3_dv27[c3_i225];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[90];\r\n  int32_T c3_i226;\r\n  int32_T c3_i227;\r\n  int32_T c3_i228;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i226 = 0;\r\n  for (c3_i227 = 0; c3_i227 < 6; c3_i227++) {\r\n    for (c3_i228 = 0; c3_i228 < 15; c3_i228++) {\r\n      (*(real_T (*)[90])c3_outData)[c3_i228 + c3_i226] = c3_y[c3_i228 + c3_i226];\r\n    }\r\n\r\n    c3_i226 += 15;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60])\r\n{\r\n  real_T c3_dv28[60];\r\n  int32_T c3_i229;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 10,\r\n                6);\r\n  for (c3_i229 = 0; c3_i229 < 60; c3_i229++) {\r\n    c3_y[c3_i229] = c3_dv28[c3_i229];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kr;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[60];\r\n  int32_T c3_i230;\r\n  int32_T c3_i231;\r\n  int32_T c3_i232;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kr = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kr), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kr);\r\n  c3_i230 = 0;\r\n  for (c3_i231 = 0; c3_i231 < 6; c3_i231++) {\r\n    for (c3_i232 = 0; c3_i232 < 10; c3_i232++) {\r\n      (*(real_T (*)[60])c3_outData)[c3_i232 + c3_i230] = c3_y[c3_i232 + c3_i230];\r\n    }\r\n\r\n    c3_i230 += 10;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[36])\r\n{\r\n  real_T c3_dv29[36];\r\n  int32_T c3_i233;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i233 = 0; c3_i233 < 36; c3_i233++) {\r\n    c3_y[c3_i233] = c3_dv29[c3_i233];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[36];\r\n  int32_T c3_i234;\r\n  int32_T c3_i235;\r\n  int32_T c3_i236;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kv);\r\n  c3_i234 = 0;\r\n  for (c3_i235 = 0; c3_i235 < 6; c3_i235++) {\r\n    for (c3_i236 = 0; c3_i236 < 6; c3_i236++) {\r\n      (*(real_T (*)[36])c3_outData)[c3_i236 + c3_i234] = c3_y[c3_i236 + c3_i234];\r\n    }\r\n\r\n    c3_i234 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv30[18];\r\n  int32_T c3_i237;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv30, 1, 0, 0U, 1, 0U, 1, 18);\r\n  for (c3_i237 = 0; c3_i237 < 18; c3_i237++) {\r\n    c3_y[c3_i237] = c3_dv30[c3_i237];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mlim;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i238;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mlim = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mlim), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mlim);\r\n  for (c3_i238 = 0; c3_i238 < 18; c3_i238++) {\r\n    (*(real_T (*)[18])c3_outData)[c3_i238] = c3_y[c3_i238];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126])\r\n{\r\n  real_T c3_dv31[126];\r\n  int32_T c3_i239;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv31, 1, 0, 0U, 1, 0U, 2, 18,\r\n                7);\r\n  for (c3_i239 = 0; c3_i239 < 126; c3_i239++) {\r\n    c3_y[c3_i239] = c3_dv31[c3_i239];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[126];\r\n  int32_T c3_i240;\r\n  int32_T c3_i241;\r\n  int32_T c3_i242;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  c3_i240 = 0;\r\n  for (c3_i241 = 0; c3_i241 < 7; c3_i241++) {\r\n    for (c3_i242 = 0; c3_i242 < 18; c3_i242++) {\r\n      (*(real_T (*)[126])c3_outData)[c3_i242 + c3_i240] = c3_y[c3_i242 + c3_i240];\r\n    }\r\n\r\n    c3_i240 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[54])\r\n{\r\n  real_T c3_dv32[54];\r\n  int32_T c3_i243;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv32, 1, 0, 0U, 1, 0U, 2, 18,\r\n                3);\r\n  for (c3_i243 = 0; c3_i243 < 54; c3_i243++) {\r\n    c3_y[c3_i243] = c3_dv32[c3_i243];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mu1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[54];\r\n  int32_T c3_i244;\r\n  int32_T c3_i245;\r\n  int32_T c3_i246;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mu1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mu1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mu1);\r\n  c3_i244 = 0;\r\n  for (c3_i245 = 0; c3_i245 < 3; c3_i245++) {\r\n    for (c3_i246 = 0; c3_i246 < 18; c3_i246++) {\r\n      (*(real_T (*)[54])c3_outData)[c3_i246 + c3_i244] = c3_y[c3_i246 + c3_i244];\r\n    }\r\n\r\n    c3_i244 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[108])\r\n{\r\n  real_T c3_dv33[108];\r\n  int32_T c3_i247;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv33, 1, 0, 0U, 1, 0U, 2, 18,\r\n                6);\r\n  for (c3_i247 = 0; c3_i247 < 108; c3_i247++) {\r\n    c3_y[c3_i247] = c3_dv33[c3_i247];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[108];\r\n  int32_T c3_i248;\r\n  int32_T c3_i249;\r\n  int32_T c3_i250;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_t_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mv);\r\n  c3_i248 = 0;\r\n  for (c3_i249 = 0; c3_i249 < 6; c3_i249++) {\r\n    for (c3_i250 = 0; c3_i250 < 18; c3_i250++) {\r\n      (*(real_T (*)[108])c3_outData)[c3_i250 + c3_i248] = c3_y[c3_i250 + c3_i248];\r\n    }\r\n\r\n    c3_i248 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[7])\r\n{\r\n  real_T c3_dv34[7];\r\n  int32_T c3_i251;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv34, 1, 0, 0U, 1, 0U, 1, 7);\r\n  for (c3_i251 = 0; c3_i251 < 7; c3_i251++) {\r\n    c3_y[c3_i251] = c3_dv34[c3_i251];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_q_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[7];\r\n  int32_T c3_i252;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i252 = 0; c3_i252 < 7; c3_i252++) {\r\n    (*(real_T (*)[7])c3_outData)[c3_i252] = c3_y[c3_i252];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_v_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15])\r\n{\r\n  real_T c3_dv35[15];\r\n  int32_T c3_i253;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv35, 1, 0, 0U, 1, 0U, 1, 15);\r\n  for (c3_i253 = 0; c3_i253 < 15; c3_i253++) {\r\n    c3_y[c3_i253] = c3_dv35[c3_i253];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_r_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_utarget;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[15];\r\n  int32_T c3_i254;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_utarget = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_v_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_utarget), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_utarget);\r\n  for (c3_i254 = 0; c3_i254 < 15; c3_i254++) {\r\n    (*(real_T (*)[15])c3_outData)[c3_i254] = c3_y[c3_i254];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_w_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[2])\r\n{\r\n  real_T c3_dv36[2];\r\n  int32_T c3_i255;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv36, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c3_i255 = 0; c3_i255 < 2; c3_i255++) {\r\n    c3_y[c3_i255] = c3_dv36[c3_i255];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_s_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_yoff;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[2];\r\n  int32_T c3_i256;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_yoff = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_w_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_yoff), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_yoff);\r\n  for (c3_i256 = 0; c3_i256 < 2; c3_i256++) {\r\n    (*(real_T (*)[2])c3_outData)[c3_i256] = c3_y[c3_i256];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_x_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[5])\r\n{\r\n  real_T c3_dv37[5];\r\n  int32_T c3_i257;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv37, 1, 0, 0U, 1, 0U, 2, 1, 5);\r\n  for (c3_i257 = 0; c3_i257 < 5; c3_i257++) {\r\n    c3_y[c3_i257] = c3_dv37[c3_i257];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_t_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[5];\r\n  int32_T c3_i258;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_x_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i258 = 0; c3_i258 < 5; c3_i258++) {\r\n    (*(real_T (*)[5])c3_outData)[c3_i258] = c3_y[c3_i258];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_y_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_ab_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_ab_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2641758166U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(766737260U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2236880295U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1293431839U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"g7n8W2zIhsSl5ytZmrRxgE\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(25);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(15);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(5);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(15);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(5);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(25);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 25;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)\r\n            c3_d_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 5;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)c3_f_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_u_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 3;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_t_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 15;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_s_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 10;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_r_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 18;\r\n          _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)\r\n            c3_q_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 15;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_r_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)\r\n            c3_d_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)\r\n            c3_s_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)c3_f_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 5;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_t_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 25;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_switch_in;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[10];\r\n          real_T (*c3_vseq)[6];\r\n          real_T (*c3_x)[7];\r\n          real_T (*c3_old_u)[3];\r\n          boolean_T (*c3_iA)[25];\r\n          real_T (*c3_umin)[3];\r\n          real_T (*c3_umax)[3];\r\n          real_T (*c3_ymin)[2];\r\n          real_T (*c3_ymax)[2];\r\n          real_T (*c3_ywt)[2];\r\n          real_T (*c3_duwt)[3];\r\n          real_T (*c3_u)[3];\r\n          real_T (*c3_useq)[15];\r\n          boolean_T (*c3_iAout)[25];\r\n          c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S,\r\n            5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[25])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[7])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, *c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, *c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, *c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, *c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, *c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, *c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, *c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, *c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"D4OsMEOPkEhTIURBqithJD\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(3430978843U));\r\n  ssSetChecksum1(S,(2278815809U));\r\n  ssSetChecksum2(S,(3141316122U));\r\n  ssSetChecksum3(S,(3317508031U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[49];\r\n  real_T c3_Kx[42];\r\n  real_T c3_Ku1[18];\r\n  real_T c3_Kut[90];\r\n  real_T c3_Kr[60];\r\n  real_T c3_Kv[36];\r\n  real_T c3_Mlim[18];\r\n  real_T c3_Mx[126];\r\n  real_T c3_Mu1[54];\r\n  real_T c3_Mv[108];\r\n  real_T c3_z_degrees[7];\r\n  real_T c3_utarget[15];\r\n  real_T c3_p;\r\n  real_T c3_uoff[3];\r\n  real_T c3_yoff[2];\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[49];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[5];\r\n  real_T c3_Linv[49];\r\n  real_T c3_Ac[126];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (5.0)\r\n#define c4_b_ny                        (2.0)\r\n#define c4_b_nv                        (1.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (1.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10]);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[6]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[6]);\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier);\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic void c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2]);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_dv0[2];\r\n  int32_T c4_i0;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      c4_dv0, 0, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i0 = 0; c4_i0 < 2; c4_i0++) {\r\n    chartInstance->c4_yoff[c4_i0] = c4_dv0[c4_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d6 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i2;\r\n  real_T c4_c_u[6];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_b_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T *c4_v;\r\n  real_T (*c4_vseq)[6];\r\n  real_T (*c4_rseq)[10];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i1 = 0; c4_i1 < 10; c4_i1++) {\r\n    c4_u[c4_i1] = (*c4_rseq)[c4_i1];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  c4_hoistedGlobal = *c4_v;\r\n  c4_b_u = c4_hoistedGlobal;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i2 = 0; c4_i2 < 6; c4_i2++) {\r\n    c4_c_u[c4_i2] = (*c4_vseq)[c4_i2];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_b_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_b_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv1[10];\r\n  int32_T c4_i3;\r\n  real_T c4_dv2[6];\r\n  int32_T c4_i4;\r\n  real_T *c4_v;\r\n  real_T (*c4_rseq)[10];\r\n  real_T (*c4_vseq)[6];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)), \"rseq\",\r\n                      c4_dv1);\r\n  for (c4_i3 = 0; c4_i3 < 10; c4_i3++) {\r\n    (*c4_rseq)[c4_i3] = c4_dv1[c4_i3];\r\n  }\r\n\r\n  *c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)),\r\n    \"v\");\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv2);\r\n  for (c4_i4 = 0; c4_i4 < 6; c4_i4++) {\r\n    (*c4_vseq)[c4_i4] = c4_dv2[c4_i4];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_j_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i5;\r\n  int32_T c4_i6;\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_hoistedGlobal;\r\n  int32_T c4_i9;\r\n  real_T c4_ref[2];\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff[2];\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[10];\r\n  real_T c4_vseq[6];\r\n  real_T c4_v;\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i12;\r\n  int32_T c4_i13;\r\n  int32_T c4_i14;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  int32_T c4_i15;\r\n  real_T c4_f_u[2];\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv3[10];\r\n  int32_T c4_i16;\r\n  real_T c4_dv4[6];\r\n  int32_T c4_i17;\r\n  int32_T c4_i18;\r\n  int32_T c4_i19;\r\n  real_T *c4_b_md;\r\n  real_T *c4_c_v;\r\n  real_T (*c4_c_rseq)[10];\r\n  real_T (*c4_c_vseq)[6];\r\n  real_T (*c4_b_ref)[2];\r\n  c4_c_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i5 = 0; c4_i5 < 10; c4_i5++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i5], 0U);\r\n  }\r\n\r\n  for (c4_i6 = 0; c4_i6 < 6; c4_i6++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i6], 1U);\r\n  }\r\n\r\n  for (c4_i7 = 0; c4_i7 < 2; c4_i7++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_b_ref)[c4_i7], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_c_v, 4U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  for (c4_i8 = 0; c4_i8 < 2; c4_i8++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff[c4_i8], 8U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_md;\r\n  for (c4_i9 = 0; c4_i9 < 2; c4_i9++) {\r\n    c4_ref[c4_i9] = (*c4_b_ref)[c4_i9];\r\n  }\r\n\r\n  c4_md = c4_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_c_yoff, 4U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_ref, 11U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  for (c4_i10 = 0; c4_i10 < 2; c4_i10++) {\r\n    c4_c_yoff[c4_i10] = 0.0;\r\n  }\r\n\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i11 = 0; c4_i11 < 6; c4_i11++) {\r\n    c4_DataType[c4_i11] = c4_cv0[c4_i11];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i12 = 0; c4_i12 < 10; c4_i12++) {\r\n    c4_rseq[c4_i12] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i13 = 0; c4_i13 < 6; c4_i13++) {\r\n    c4_vseq[c4_i13] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  c4_v = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  for (c4_i14 = 0; c4_i14 < 2; c4_i14++) {\r\n    c4_u[c4_i14] = c4_ref[c4_i14];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c4_i15 = 0; c4_i15 < 2; c4_i15++) {\r\n    c4_f_u[c4_i15] = 0.0;\r\n  }\r\n\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", c4_f_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv3);\r\n  for (c4_i16 = 0; c4_i16 < 10; c4_i16++) {\r\n    c4_rseq[c4_i16] = c4_dv3[c4_i16];\r\n  }\r\n\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv4);\r\n  for (c4_i17 = 0; c4_i17 < 6; c4_i17++) {\r\n    c4_vseq[c4_i17] = c4_dv4[c4_i17];\r\n  }\r\n\r\n  c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\");\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i18 = 0; c4_i18 < 10; c4_i18++) {\r\n    (*c4_c_rseq)[c4_i18] = c4_rseq[c4_i18];\r\n  }\r\n\r\n  for (c4_i19 = 0; c4_i19 < 6; c4_i19++) {\r\n    (*c4_c_vseq)[c4_i19] = c4_vseq[c4_i19];\r\n  }\r\n\r\n  *c4_c_v = c4_v;\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i20;\r\n  real_T c4_b_inData[6];\r\n  int32_T c4_i21;\r\n  real_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i20 = 0; c4_i20 < 6; c4_i20++) {\r\n    c4_b_inData[c4_i20] = (*(real_T (*)[6])c4_inData)[c4_i20];\r\n  }\r\n\r\n  for (c4_i21 = 0; c4_i21 < 6; c4_i21++) {\r\n    c4_u[c4_i21] = c4_b_inData[c4_i21];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[6];\r\n  int32_T c4_i22;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i22 = 0; c4_i22 < 6; c4_i22++) {\r\n    (*(real_T (*)[6])c4_outData)[c4_i22] = c4_y[c4_i22];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i23;\r\n  real_T c4_b_inData[10];\r\n  int32_T c4_i24;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i23 = 0; c4_i23 < 10; c4_i23++) {\r\n    c4_b_inData[c4_i23] = (*(real_T (*)[10])c4_inData)[c4_i23];\r\n  }\r\n\r\n  for (c4_i24 = 0; c4_i24 < 10; c4_i24++) {\r\n    c4_u[c4_i24] = c4_b_inData[c4_i24];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[10];\r\n  int32_T c4_i25;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i25 = 0; c4_i25 < 10; c4_i25++) {\r\n    (*(real_T (*)[10])c4_outData)[c4_i25] = c4_y[c4_i25];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i26;\r\n  real_T c4_b_inData[2];\r\n  int32_T c4_i27;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i26 = 0; c4_i26 < 2; c4_i26++) {\r\n    c4_b_inData[c4_i26] = (*(real_T (*)[2])c4_inData)[c4_i26];\r\n  }\r\n\r\n  for (c4_i27 = 0; c4_i27 < 2; c4_i27++) {\r\n    c4_u[c4_i27] = c4_b_inData[c4_i27];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i28;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i29;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i28 = 0; c4_i28 < 6; c4_i28++) {\r\n    c4_b_inData[c4_i28] = (*(char_T (*)[6])c4_inData)[c4_i28];\r\n  }\r\n\r\n  for (c4_i29 = 0; c4_i29 < 6; c4_i29++) {\r\n    c4_u[c4_i29] = c4_b_inData[c4_i29];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10])\r\n{\r\n  real_T c4_dv5[10];\r\n  int32_T c4_i30;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv5, 1, 0, 0U, 1, 0U, 1, 10);\r\n  for (c4_i30 = 0; c4_i30 < 10; c4_i30++) {\r\n    c4_y[c4_i30] = c4_dv5[c4_i30];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[6])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[6])\r\n{\r\n  real_T c4_dv6[6];\r\n  int32_T c4_i31;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv6, 1, 0, 0U, 1, 0U, 1, 6);\r\n  for (c4_i31 = 0; c4_i31 < 6; c4_i31++) {\r\n    c4_y[c4_i31] = c4_dv6[c4_i31];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier)\r\n{\r\n  real_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  return c4_y;\r\n}\r\n\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d7;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d7, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d7;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i32;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i32, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i32;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic void c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2])\r\n{\r\n  real_T c4_dv7[2];\r\n  int32_T c4_i33;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv7, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i33 = 0; c4_i33 < 2; c4_i33++) {\r\n    c4_y[c4_i33] = c4_dv7[c4_i33];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_yoff;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[2];\r\n  int32_T c4_i34;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_yoff = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_yoff), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_c_yoff);\r\n  for (c4_i34 = 0; c4_i34 < 2; c4_i34++) {\r\n    (*(real_T (*)[2])c4_outData)[c4_i34] = c4_y[c4_i34];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_k_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2060684023U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3607261543U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(4175904135U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1907083303U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"W9pU18Rzyx5XpPp6ECbqY\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)\r\n            c4_e_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_e_sf_marshallOut,(MexInFcnForType)c4_f_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_md;\r\n          real_T *c4_v;\r\n          real_T (*c4_rseq)[10];\r\n          real_T (*c4_vseq)[6];\r\n          real_T (*c4_ref)[2];\r\n          c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"xf8liFQGgsdDdPF7ystbhB\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(1010599357U));\r\n  ssSetChecksum1(S,(1840766416U));\r\n  ssSetChecksum2(S,(2527524482U));\r\n  ssSetChecksum3(S,(3455074465U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff[2];\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3733901436U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(949442464U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1737739463U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(4229556772U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"g7n8W2zIhsSl5ytZmrRxgE\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"W9pU18Rzyx5XpPp6ECbqY\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"D4OsMEOPkEhTIURBqithJD\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"xf8liFQGgsdDdPF7ystbhB\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"D4OsMEOPkEhTIURBqithJD\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"xf8liFQGgsdDdPF7ystbhB\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_nonlinear\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_nonlinear_setoutdist_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_nonlinear_setoutdist_sfun.h\"\r\n#include \"mpc_nonlinear_setoutdist_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_nonlinear_setoutdistMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_nonlinear_setoutdist_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_nonlinear_setoutdist_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_nonlinear_setoutdist_method_dispatcher(SimStruct\r\n  *simstructPtr, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_setoutdist_process_check_sum_call( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3127565895U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2424730183U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(995534499U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(961026598U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(845759541U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2701450421U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(148688554U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2521617472U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(674933522U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2737848264U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1644704678U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1374868793U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_setoutdist_autoinheritance_info( int nlhs, mxArray\r\n  * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_setoutdist_get_eml_resolved_functions_info( int\r\n  nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_setoutdist_third_party_uses_info( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_setoutdist_updateBuildInfo_args_info( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_nonlinear_setoutdist_debug_initialize(struct SfDebugInstanceStruct*\r\n  debugInstance)\r\n{\r\n  _mpc_nonlinear_setoutdistMachineNumber_ = sf_debug_initialize_machine\r\n    (debugInstance,\"mpc_nonlinear_setoutdist\",\"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,\r\n    _mpc_nonlinear_setoutdistMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,\r\n    _mpc_nonlinear_setoutdistMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_nonlinear_setoutdist_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_nonlinear_setoutdist_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\r\n      \"mpc_nonlinear_setoutdist\", \"mpc_nonlinear_setoutdist\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_nonlinear_setoutdist_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun.h",
    "content": "#ifndef __mpc_nonlinear_setoutdist_sfun_h__\r\n#define __mpc_nonlinear_setoutdist_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_nonlinear_setoutdistMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_nonlinear_setoutdist_initializer(void);\r\nextern void mpc_nonlinear_setoutdist_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_nonlinear_setoutdist_optimization_info(void);\r\nextern void unload_mpc_nonlinear_setoutdist_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_nonlinear_setoutdist\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_nonlinear_setoutdist_sfun.c\r\nMACHINE_REG = mpc_nonlinear_setoutdist_sfun_registry.c\r\nMAKEFILE    = mpc_nonlinear_setoutdist_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_nonlinear_setoutdist_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_nonlinear_setoutdist\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun.mol",
    "content": "mpc_nonlinear_setoutdist_sfun.obj\r\nmpc_nonlinear_setoutdist_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_nonlinear_setoutdistMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_nonlinear_setoutdistMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/mpc_nonlinear_setoutdist_sfun_registry.c",
    "content": "#include \"mpc_nonlinear_setoutdist_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_setoutdist_process_check_sum_call( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_nonlinear_setoutdist_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_setoutdist_autoinheritance_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_setoutdist\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_setoutdist_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_setoutdist_third_party_uses_info( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_setoutdist\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_setoutdist_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_setoutdist_updateBuildInfo_args_info( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_setoutdist\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_setoutdist_updateBuildInfo_args_info(nlhs,plhs,3,\r\n      newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int\r\n    sf_mpc_nonlinear_setoutdist_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_setoutdist\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_nonlinear_setoutdist_get_eml_resolved_functions_info(nlhs,plhs,\r\n      2,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_nonlinear_setoutdist_method_dispatcher(SimStruct *S,\r\n  unsigned int chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_nonlinear_setoutdist\")) {\r\n    return(sf_mpc_nonlinear_setoutdist_method_dispatcher(simstructPtr,\r\n            chartFileNumber,specsCksum,method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_nonlinear_setoutdist_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_nonlinear_setoutdist_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_nonlinear_setoutdist_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_nonlinear_setoutdist_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_nonlinear_setoutdist_debug_initialize(struct\r\n  SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_nonlinear_setoutdist_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_nonlinear_setoutdist_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_nonlinear_setoutdist_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (5.0)\r\n#define c3_b_nu                        (3.0)\r\n#define c3_b_isQP                      (TRUE)\r\n#define c3_b_ny                        (2.0)\r\n#define c3_b_degrees                   (7.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (11.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_t_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_u_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_v_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_w_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_x_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c3_u, const char_T *c3_identifier, real_T c3_y[3]);\r\nstatic void c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic real_T c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_cost, const char_T *c3_identifier);\r\nstatic real_T c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[15]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15]);\r\nstatic void c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[25]);\r\nstatic void c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[25]);\r\nstatic const mxArray *c3_y_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[49]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[66]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[90]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[36]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[198]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[54]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[108]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[7]);\r\nstatic void c3_q_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_v_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15]);\r\nstatic void c3_r_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_w_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[2]);\r\nstatic void c3_s_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_x_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[5]);\r\nstatic void c3_t_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_y_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126]);\r\nstatic void c3_u_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_ab_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_bb_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[49];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[66];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[18];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[90];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[60];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[36];\r\n  int32_T c3_i5;\r\n  real_T c3_dv6[18];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[198];\r\n  int32_T c3_i7;\r\n  real_T c3_dv8[54];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[108];\r\n  int32_T c3_i9;\r\n  real_T c3_dv10[7];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[15];\r\n  int32_T c3_i11;\r\n  real_T c3_d4;\r\n  real_T c3_dv12[3];\r\n  int32_T c3_i12;\r\n  real_T c3_dv13[2];\r\n  int32_T c3_i13;\r\n  real_T c3_d5;\r\n  real_T c3_d6;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_dv14[49];\r\n  int32_T c3_i14;\r\n  real_T c3_d17;\r\n  real_T c3_dv15[5];\r\n  int32_T c3_i15;\r\n  real_T c3_dv16[49];\r\n  int32_T c3_i16;\r\n  real_T c3_dv17[126];\r\n  int32_T c3_i17;\r\n  real_T c3_d18;\r\n  real_T c3_d19;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i0 = 0; c3_i0 < 49; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 11, 6);\r\n  for (c3_i1 = 0; c3_i1 < 66; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 3, 6);\r\n  for (c3_i2 = 0; c3_i2 < 18; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 15, 6);\r\n  for (c3_i3 = 0; c3_i3 < 90; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 10, 6);\r\n  for (c3_i4 = 0; c3_i4 < 60; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i5 = 0; c3_i5 < 36; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 1, 18);\r\n  for (c3_i6 = 0; c3_i6 < 18; c3_i6++) {\r\n    chartInstance->c3_Mlim[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 18, 11);\r\n  for (c3_i7 = 0; c3_i7 < 198; c3_i7++) {\r\n    chartInstance->c3_Mx[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 2, 18, 3);\r\n  for (c3_i8 = 0; c3_i8 < 54; c3_i8++) {\r\n    chartInstance->c3_Mu1[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 2, 18, 6);\r\n  for (c3_i9 = 0; c3_i9 < 108; c3_i9++) {\r\n    chartInstance->c3_Mv[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 7);\r\n  for (c3_i10 = 0; c3_i10 < 7; c3_i10++) {\r\n    chartInstance->c3_z_degrees[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 15);\r\n  for (c3_i11 = 0; c3_i11 < 15; c3_i11++) {\r\n    chartInstance->c3_utarget[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 1, 3);\r\n  for (c3_i12 = 0; c3_i12 < 3; c3_i12++) {\r\n    chartInstance->c3_uoff[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      c3_dv13, 0, 0, 0U, 1, 0U, 1, 2);\r\n  for (c3_i13 = 0; c3_i13 < 2; c3_i13++) {\r\n    chartInstance->c3_yoff[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d7 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d9;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i14 = 0; c3_i14 < 49; c3_i14++) {\r\n    chartInstance->c3_H[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv15, 0, 0, 0U, 1, 0U, 2, 1, 5);\r\n  for (c3_i15 = 0; c3_i15 < 5; c3_i15++) {\r\n    chartInstance->c3_blocking_moves[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv16, 0, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i16 = 0; c3_i16 < 49; c3_i16++) {\r\n    chartInstance->c3_Linv[c3_i16] = c3_dv16[c3_i16];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv17, 0, 0, 0U, 1, 0U, 2, 18, 7);\r\n  for (c3_i17 = 0; c3_i17 < 126; c3_i17++) {\r\n    chartInstance->c3_Ac[c3_i17] = c3_dv17[c3_i17];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i18;\r\n  boolean_T c3_b_u[25];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  int32_T c3_i19;\r\n  real_T c3_d_u[3];\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i20;\r\n  real_T c3_e_u[15];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_c_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T (*c3_useq)[15];\r\n  real_T (*c3_g_u)[3];\r\n  boolean_T (*c3_iAout)[25];\r\n  c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i18 = 0; c3_i18 < 25; c3_i18++) {\r\n    c3_b_u[c3_i18] = (*c3_iAout)[c3_i18];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 25),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  for (c3_i19 = 0; c3_i19 < 3; c3_i19++) {\r\n    c3_d_u[c3_i19] = (*c3_g_u)[c3_i19];\r\n  }\r\n\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", c3_d_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i20 = 0; c3_i20 < 15; c3_i20++) {\r\n    c3_e_u[c3_i20] = (*c3_useq)[c3_i20];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 2, 5, 3),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_c_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_c_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[25];\r\n  int32_T c3_i21;\r\n  real_T c3_dv18[3];\r\n  int32_T c3_i22;\r\n  real_T c3_dv19[15];\r\n  int32_T c3_i23;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[25];\r\n  real_T (*c3_b_u)[3];\r\n  real_T (*c3_useq)[15];\r\n  c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i21 = 0; c3_i21 < 25; c3_i21++) {\r\n    (*c3_iAout)[c3_i21] = c3_bv0[c3_i21];\r\n  }\r\n\r\n  *c3_status = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell\r\n    (c3_u, 2)), \"status\");\r\n  c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)), \"u\",\r\n                      c3_dv18);\r\n  for (c3_i22 = 0; c3_i22 < 3; c3_i22++) {\r\n    (*c3_b_u)[c3_i22] = c3_dv18[c3_i22];\r\n  }\r\n\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv19);\r\n  for (c3_i23 = 0; c3_i23 < 15; c3_i23++) {\r\n    (*c3_useq)[c3_i23] = c3_dv19[c3_i23];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_ab_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  int32_T c3_i42;\r\n  int32_T c3_i43;\r\n  int32_T c3_i44;\r\n  int32_T c3_i45;\r\n  int32_T c3_i46;\r\n  int32_T c3_i47;\r\n  int32_T c3_i48;\r\n  int32_T c3_i49;\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  int32_T c3_i52;\r\n  int32_T c3_i53;\r\n  int32_T c3_i54;\r\n  int32_T c3_i55;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[25];\r\n  real_T (*c3_useq)[15];\r\n  real_T (*c3_u)[3];\r\n  real_T (*c3_duwt)[3];\r\n  real_T (*c3_ywt)[2];\r\n  real_T (*c3_ymax)[2];\r\n  real_T (*c3_ymin)[2];\r\n  real_T (*c3_umax)[3];\r\n  real_T (*c3_umin)[3];\r\n  boolean_T (*c3_iA)[25];\r\n  real_T (*c3_old_u)[3];\r\n  real_T (*c3_x)[11];\r\n  real_T (*c3_vseq)[6];\r\n  real_T (*c3_rseq)[10];\r\n  c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[25])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[11])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i24 = 0; c3_i24 < 10; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i24], 0U);\r\n  }\r\n\r\n  for (c3_i25 = 0; c3_i25 < 6; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i25], 1U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 11; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i26], 2U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_old_u)[c3_i27], 3U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 25; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i28], 4U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 3; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_umin)[c3_i29], 5U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 3; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_umax)[c3_i30], 6U);\r\n  }\r\n\r\n  for (c3_i31 = 0; c3_i31 < 2; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ymin)[c3_i31], 7U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 2; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ymax)[c3_i32], 8U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  for (c3_i33 = 0; c3_i33 < 2; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ywt)[c3_i33], 10U);\r\n  }\r\n\r\n  for (c3_i34 = 0; c3_i34 < 3; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_duwt)[c3_i34], 11U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  for (c3_i35 = 0; c3_i35 < 3; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_u)[c3_i35], 13U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i36 = 0; c3_i36 < 15; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i36], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i37 = 0; c3_i37 < 49; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i37], 21U);\r\n  }\r\n\r\n  for (c3_i38 = 0; c3_i38 < 66; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i38], 22U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 18; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i39], 23U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 90; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i40], 24U);\r\n  }\r\n\r\n  for (c3_i41 = 0; c3_i41 < 60; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i41], 25U);\r\n  }\r\n\r\n  for (c3_i42 = 0; c3_i42 < 36; c3_i42++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i42], 26U);\r\n  }\r\n\r\n  for (c3_i43 = 0; c3_i43 < 18; c3_i43++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim[c3_i43], 27U);\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 198; c3_i44++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i44], 28U);\r\n  }\r\n\r\n  for (c3_i45 = 0; c3_i45 < 54; c3_i45++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i45], 29U);\r\n  }\r\n\r\n  for (c3_i46 = 0; c3_i46 < 108; c3_i46++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv[c3_i46], 30U);\r\n  }\r\n\r\n  for (c3_i47 = 0; c3_i47 < 7; c3_i47++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i47], 31U);\r\n  }\r\n\r\n  for (c3_i48 = 0; c3_i48 < 15; c3_i48++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i48], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  for (c3_i49 = 0; c3_i49 < 3; c3_i49++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff[c3_i49], 34U);\r\n  }\r\n\r\n  for (c3_i50 = 0; c3_i50 < 2; c3_i50++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff[c3_i50], 35U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i51 = 0; c3_i51 < 49; c3_i51++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i51], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i52 = 0; c3_i52 < 5; c3_i52++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i52], 50U);\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 49; c3_i53++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i53], 51U);\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 126; c3_i54++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i54], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i55 = 0; c3_i55 < 25; c3_i55++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i55], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  int32_T c3_i56;\r\n  real_T c3_rseq[10];\r\n  int32_T c3_i57;\r\n  real_T c3_vseq[6];\r\n  int32_T c3_i58;\r\n  real_T c3_x[11];\r\n  int32_T c3_i59;\r\n  real_T c3_old_u[3];\r\n  int32_T c3_i60;\r\n  boolean_T c3_iA[25];\r\n  int32_T c3_i61;\r\n  real_T c3_umin[3];\r\n  int32_T c3_i62;\r\n  real_T c3_umax[3];\r\n  int32_T c3_i63;\r\n  real_T c3_ymin[2];\r\n  int32_T c3_i64;\r\n  real_T c3_ymax[2];\r\n  real_T c3_switch_in;\r\n  int32_T c3_i65;\r\n  real_T c3_ywt[2];\r\n  int32_T c3_i66;\r\n  real_T c3_duwt[3];\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[49];\r\n  real_T c3_c_Kx[66];\r\n  real_T c3_c_Ku1[18];\r\n  real_T c3_c_Kut[90];\r\n  real_T c3_c_Kr[60];\r\n  real_T c3_c_Kv[36];\r\n  real_T c3_c_Mlim[18];\r\n  real_T c3_c_Mx[198];\r\n  real_T c3_c_Mu1[54];\r\n  real_T c3_c_Mv[108];\r\n  real_T c3_c_z_degrees[7];\r\n  real_T c3_c_utarget[15];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff[3];\r\n  real_T c3_c_yoff[2];\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[49];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[5];\r\n  real_T c3_c_Linv[49];\r\n  real_T c3_c_Ac[126];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u[3];\r\n  real_T c3_cost;\r\n  real_T c3_useq[15];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[25];\r\n  int32_T c3_i67;\r\n  static real_T c3_d_Ac[126] = { -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, -0.0,\r\n    -0.0, 1.0, -0.0, -0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0, -1.0, -0.0, -0.0,\r\n    -1.0, -0.0, -0.0, 1.0, -0.0, -0.0, 1.0, -0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0,\r\n    -0.0, -0.0, -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, -0.0, -0.0, 1.0, 0.0,\r\n    0.0, 1.0, 0.0, 0.0, 0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0,\r\n    -0.0, 1.0, -0.0, -0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -0.0, -0.0, -0.0, -0.0,\r\n    -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, 1.0, -0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,\r\n    -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, 1.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i68;\r\n  static real_T c3_d_Linv[49] = { 0.890943967335334, -0.3765340064257745,\r\n    -0.081968447195651092, -3.5489218669425688, -0.0066855072825417984,\r\n    0.10307825269687225, 0.0, 0.0, 0.79076149529618434, -1.45244561488651,\r\n    0.37621263709139419, -2.9239965883035044, 0.46691227779109384, 0.0, 0.0, 0.0,\r\n    5.1774615543769329, -0.55386901645657716, -4.1318677662181731,\r\n    -3.4991992981439619, 0.0, 0.0, 0.0, 0.0, 4.6605654371565022,\r\n    -0.041083569621347855, -0.15597566320058937, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    5.5702072264245031, -0.95560346771331783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    8.8039367573053688, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.003162277660168379\r\n  };\r\n\r\n  int32_T c3_i69;\r\n  static real_T c3_d_blocking_moves[5] = { 1.0, 1.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i70;\r\n  static real_T c3_d_H[49] = { 1.2597930755942788, 0.59987105700346466,\r\n    0.188228026070508, 0.93325195233225344, 0.46291238552612662,\r\n    0.095028876539678384, 0.0, 0.59987105700346466, 1.8848612022853453,\r\n    0.53826162835208635, 0.36860620668000732, 1.3921398940378122,\r\n    0.2645877164403112, 0.0, 0.188228026070508, 0.53826162835208635,\r\n    0.19128473163107027, 0.12261439624071246, 0.42557379326757072,\r\n    0.09364275287343965, 0.0, 0.93325195233225344, 0.36860620668000732,\r\n    0.12261439624071246, 0.74150713022437431, 0.29103635087465185,\r\n    0.062985445368814619, 0.0, 0.46291238552612662, 1.3921398940378122,\r\n    0.42557379326757072, 0.29103635087465185, 1.0813969472131397,\r\n    0.21243057759953443, 0.0, 0.095028876539678384, 0.2645877164403112,\r\n    0.09364275287343965, 0.062985445368814619, 0.21243057759953443,\r\n    0.059149576937758915, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 100000.0 };\r\n\r\n  int32_T c3_i71;\r\n  int32_T c3_i72;\r\n  int32_T c3_i73;\r\n  int32_T c3_i74;\r\n  int32_T c3_i75;\r\n  int32_T c3_i76;\r\n  static real_T c3_d_Mu1[54] = { -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, 1.0, 0.0,\r\n    0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0, -1.0, -0.0, -0.0,\r\n    -1.0, -0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0,\r\n    -0.0, -1.0, -0.0, -0.0, -1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,\r\n    0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i77;\r\n  int32_T c3_i78;\r\n  static real_T c3_d_Mlim[18] = { 3.0, 2.0, 2.0, 3.0, 2.0, 2.0, 3.0, 2.0, 2.0,\r\n    3.0, 2.0, 2.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0 };\r\n\r\n  int32_T c3_i79;\r\n  int32_T c3_i80;\r\n  static real_T c3_d_Kr[60] = { -0.18126924692564353, -0.018671577551657329,\r\n    -0.32967995397095429, -0.069478267418748366, -0.45118836391499728,\r\n    -0.14501667000509094, -0.55067103589379174, -0.23863046066526389,\r\n    -0.6321205588412, -0.34454251473540026, -0.0, -0.19879234322843986, -0.0,\r\n    -0.39123188951446553, -0.0, -0.573089746155531, -0.0, -0.74187890047177918,\r\n    -0.0, -0.89636167648567255, -0.0, -0.0037930220744868356, -0.0,\r\n    -0.0286066973859312, -0.0, -0.090540727786153713, -0.0, -0.20029783672802043,\r\n    -0.0, -0.36350399542963946, -0.0, -0.0, -0.18126924692564353,\r\n    -0.018671577551657329, -0.32967995397095429, -0.069478267418748366,\r\n    -0.45118836391499728, -0.14501667000509094, -0.55067103589379174,\r\n    -0.23863046066526389, -0.0, -0.0, -0.0, -0.19879234322843986, -0.0,\r\n    -0.39123188951446553, -0.0, -0.573089746155531, -0.0, -0.74187890047177918,\r\n    -0.0, -0.0, -0.0, -0.0037930220744868356, -0.0, -0.0286066973859312, -0.0,\r\n    -0.090540727786153713, -0.0, -0.20029783672802043 };\r\n\r\n  int32_T c3_i81;\r\n  int32_T c3_i82;\r\n  static real_T c3_d_Ku1[18] = { 1.2497930755942788, 0.59987105700346466,\r\n    0.18822802607050804, 0.59987105700346466, 1.8748612022853453,\r\n    0.53826162835208624, 0.188228026070508, 0.53826162835208635,\r\n    0.18128473163107026, 0.93325195233225344, 0.36860620668000732,\r\n    0.12261439624071246, 0.46291238552612662, 1.3921398940378122,\r\n    0.42557379326757072, 0.095028876539678384, 0.2645877164403112,\r\n    0.09364275287343965 };\r\n\r\n  int32_T c3_i83;\r\n  static real_T c3_d_Kx[66] = { 1.4950071410106682, 0.65738773217961954,\r\n    1.0328079237488559, 0.567234842535362, 1.6113851449398879,\r\n    0.60348869766750224, 1.5114962368787421, 2.1449291595465869,\r\n    0.28066769832603405, 0.65398250774849676, 0.81633949037616071,\r\n    1.2749901453193779, 2.3252208946601427, 3.7278479094264276,\r\n    1.6924216567122496, 5.0863219785039542, 0.0, 0.0, 0.0, 0.8240126387275275,\r\n    2.0299698690078887, 2.8013545558558883, 0.35003360229234354,\r\n    0.53952675278459827, 0.83522293045637619, 0.52699933031000479,\r\n    1.4335001534251903, 0.0, 0.0, 0.0, 0.26450903270165821, 0.5902679848530179,\r\n    0.68674227940423171, 0.94816285509076892, 0.37139389963332908,\r\n    0.57498774460151314, 0.35923583049728058, 0.98320422379931072,\r\n    0.49355972586851837, 1.1819373981786196, 1.5128086007053869,\r\n    0.17972037907376839, 0.40379938814124861, 0.47179697564076051,\r\n    0.92922750853952851, 1.5394509413528972, 2.4178458647026169,\r\n    1.3029118393594785, 3.7508458888458702, 0.0, 0.0, 0.0, 0.64065329657653858,\r\n    1.5146067683962592, 1.9049928793702156, 0.16955883990592463,\r\n    0.24927859671174421, 0.38188885150887275, 0.26533887117500837,\r\n    0.70012039644749491, 0.0, 0.0, 0.0, 0.134574598551006, 0.29141164621829685,\r\n    0.3232382839745922 };\r\n\r\n  int32_T c3_i84;\r\n  static real_T c3_d_Hinv[49] = { 13.54779407711173, -1.4461662344138535,\r\n    1.2081816624480111, -16.555785626563523, -0.13574159670048874,\r\n    0.90749441779680484, 0.0, -1.4461662344138535, 11.644201078515971,\r\n    2.7193942828191497, 1.800664878672841, -16.733449917983865,\r\n    4.1106661648821863, 0.0, 1.2081816624480111, 2.7193942828191497,\r\n    56.429606000085734, -1.8658009865707206, -19.671512706492557,\r\n    -30.806729322066776, 0.0, -16.555785626563523, 1.800664878672841,\r\n    -1.8658009865707206, 21.746886461221475, -0.079793111758778262,\r\n    -1.3731998744967511, 0.0, -0.13574159670048874, -16.733449917983865,\r\n    -19.671512706492557, -0.079793111758778262, 31.940386532817474,\r\n    -8.4130724948097537, 0.0, 0.90749441779680484, 4.1106661648821863,\r\n    -30.806729322066776, -1.3731998744967511, -8.4130724948097537,\r\n    77.509302426632573, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.9999999999999974E-6\r\n  };\r\n\r\n  int32_T c3_i85;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i86;\r\n  int32_T c3_i87;\r\n  int32_T c3_i88;\r\n  int32_T c3_i89;\r\n  real_T c3_b_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i90;\r\n  real_T c3_c_u[6];\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i91;\r\n  real_T c3_d_u[3];\r\n  const mxArray *c3_c_y = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_e_u[3];\r\n  const mxArray *c3_d_y = NULL;\r\n  int32_T c3_i93;\r\n  real_T c3_f_u[2];\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i94;\r\n  real_T c3_g_u[2];\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_i_u[11];\r\n  const mxArray *c3_h_y = NULL;\r\n  int32_T c3_i96;\r\n  real_T c3_j_u[3];\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i97;\r\n  boolean_T c3_k_u[25];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i98;\r\n  real_T c3_p_u[49];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i99;\r\n  real_T c3_q_u[66];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i100;\r\n  real_T c3_r_u[18];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i101;\r\n  real_T c3_s_u[90];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i102;\r\n  real_T c3_t_u[60];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i103;\r\n  real_T c3_u_u[36];\r\n  const mxArray *c3_t_y = NULL;\r\n  int32_T c3_i104;\r\n  real_T c3_v_u[18];\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i105;\r\n  real_T c3_w_u[198];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i106;\r\n  real_T c3_x_u[54];\r\n  const mxArray *c3_w_y = NULL;\r\n  int32_T c3_i107;\r\n  real_T c3_y_u[108];\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i108;\r\n  real_T c3_ab_u[7];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i109;\r\n  real_T c3_bb_u[15];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  int32_T c3_i110;\r\n  real_T c3_db_u[3];\r\n  const mxArray *c3_cb_y = NULL;\r\n  int32_T c3_i111;\r\n  real_T c3_eb_u[2];\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i112;\r\n  real_T c3_rb_u[49];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i113;\r\n  real_T c3_tb_u[5];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i114;\r\n  real_T c3_ub_u[49];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i115;\r\n  real_T c3_vb_u[126];\r\n  const mxArray *c3_ub_y = NULL;\r\n  int32_T c3_i116;\r\n  real_T c3_wb_u[2];\r\n  const mxArray *c3_vb_y = NULL;\r\n  int32_T c3_i117;\r\n  real_T c3_xb_u[3];\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv20[3];\r\n  int32_T c3_i118;\r\n  real_T c3_dv21[15];\r\n  int32_T c3_i119;\r\n  boolean_T c3_bv1[25];\r\n  int32_T c3_i120;\r\n  int32_T c3_i121;\r\n  int32_T c3_i122;\r\n  int32_T c3_i123;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_pc_u)[3];\r\n  real_T (*c3_c_useq)[15];\r\n  boolean_T (*c3_c_iAout)[25];\r\n  real_T (*c3_b_duwt)[3];\r\n  real_T (*c3_b_ywt)[2];\r\n  real_T (*c3_b_ymax)[2];\r\n  real_T (*c3_b_ymin)[2];\r\n  real_T (*c3_b_umax)[3];\r\n  real_T (*c3_b_umin)[3];\r\n  boolean_T (*c3_b_iA)[25];\r\n  real_T (*c3_b_old_u)[3];\r\n  real_T (*c3_b_x)[11];\r\n  real_T (*c3_b_vseq)[6];\r\n  real_T (*c3_b_rseq)[10];\r\n  c3_c_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[25])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[11])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_switch_in;\r\n  c3_b_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i56 = 0; c3_i56 < 10; c3_i56++) {\r\n    c3_rseq[c3_i56] = (*c3_b_rseq)[c3_i56];\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 6; c3_i57++) {\r\n    c3_vseq[c3_i57] = (*c3_b_vseq)[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 11; c3_i58++) {\r\n    c3_x[c3_i58] = (*c3_b_x)[c3_i58];\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 3; c3_i59++) {\r\n    c3_old_u[c3_i59] = (*c3_b_old_u)[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 25; c3_i60++) {\r\n    c3_iA[c3_i60] = (*c3_b_iA)[c3_i60];\r\n  }\r\n\r\n  for (c3_i61 = 0; c3_i61 < 3; c3_i61++) {\r\n    c3_umin[c3_i61] = (*c3_b_umin)[c3_i61];\r\n  }\r\n\r\n  for (c3_i62 = 0; c3_i62 < 3; c3_i62++) {\r\n    c3_umax[c3_i62] = (*c3_b_umax)[c3_i62];\r\n  }\r\n\r\n  for (c3_i63 = 0; c3_i63 < 2; c3_i63++) {\r\n    c3_ymin[c3_i63] = (*c3_b_ymin)[c3_i63];\r\n  }\r\n\r\n  for (c3_i64 = 0; c3_i64 < 2; c3_i64++) {\r\n    c3_ymax[c3_i64] = (*c3_b_ymax)[c3_i64];\r\n  }\r\n\r\n  c3_switch_in = c3_hoistedGlobal;\r\n  for (c3_i65 = 0; c3_i65 < 2; c3_i65++) {\r\n    c3_ywt[c3_i65] = (*c3_b_ywt)[c3_i65];\r\n  }\r\n\r\n  for (c3_i66 = 0; c3_i66 < 3; c3_i66++) {\r\n    c3_duwt[c3_i66] = (*c3_b_duwt)[c3_i66];\r\n  }\r\n\r\n  c3_rhoeps = c3_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_x_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_w_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_v_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_u_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_t_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_s_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mlim, 11U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mv, 14U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_uoff, 18U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_yoff, 19U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_old_u, 56U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_umin, 58U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_umax, 59U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ymin, 60U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ymax, 61U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ywt, 63U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_duwt, 64U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_u, 66U, c3_d_sf_marshallOut,\r\n    c3_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i67 = 0; c3_i67 < 126; c3_i67++) {\r\n    c3_c_Ac[c3_i67] = c3_d_Ac[c3_i67];\r\n  }\r\n\r\n  for (c3_i68 = 0; c3_i68 < 49; c3_i68++) {\r\n    c3_c_Linv[c3_i68] = c3_d_Linv[c3_i68];\r\n  }\r\n\r\n  for (c3_i69 = 0; c3_i69 < 5; c3_i69++) {\r\n    c3_c_blocking_moves[c3_i69] = c3_d_blocking_moves[c3_i69];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i70 = 0; c3_i70 < 49; c3_i70++) {\r\n    c3_c_H[c3_i70] = c3_d_H[c3_i70];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  for (c3_i71 = 0; c3_i71 < 2; c3_i71++) {\r\n    c3_c_yoff[c3_i71] = 0.0;\r\n  }\r\n\r\n  for (c3_i72 = 0; c3_i72 < 3; c3_i72++) {\r\n    c3_c_uoff[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i73 = 0; c3_i73 < 15; c3_i73++) {\r\n    c3_c_utarget[c3_i73] = 0.0;\r\n  }\r\n\r\n  for (c3_i74 = 0; c3_i74 < 7; c3_i74++) {\r\n    c3_c_z_degrees[c3_i74] = 0.0;\r\n  }\r\n\r\n  for (c3_i75 = 0; c3_i75 < 108; c3_i75++) {\r\n    c3_c_Mv[c3_i75] = 0.0;\r\n  }\r\n\r\n  for (c3_i76 = 0; c3_i76 < 54; c3_i76++) {\r\n    c3_c_Mu1[c3_i76] = c3_d_Mu1[c3_i76];\r\n  }\r\n\r\n  for (c3_i77 = 0; c3_i77 < 198; c3_i77++) {\r\n    c3_c_Mx[c3_i77] = 0.0;\r\n  }\r\n\r\n  for (c3_i78 = 0; c3_i78 < 18; c3_i78++) {\r\n    c3_c_Mlim[c3_i78] = c3_d_Mlim[c3_i78];\r\n  }\r\n\r\n  for (c3_i79 = 0; c3_i79 < 36; c3_i79++) {\r\n    c3_c_Kv[c3_i79] = 0.0;\r\n  }\r\n\r\n  for (c3_i80 = 0; c3_i80 < 60; c3_i80++) {\r\n    c3_c_Kr[c3_i80] = c3_d_Kr[c3_i80];\r\n  }\r\n\r\n  for (c3_i81 = 0; c3_i81 < 90; c3_i81++) {\r\n    c3_c_Kut[c3_i81] = 0.0;\r\n  }\r\n\r\n  for (c3_i82 = 0; c3_i82 < 18; c3_i82++) {\r\n    c3_c_Ku1[c3_i82] = c3_d_Ku1[c3_i82];\r\n  }\r\n\r\n  for (c3_i83 = 0; c3_i83 < 66; c3_i83++) {\r\n    c3_c_Kx[c3_i83] = c3_d_Kx[c3_i83];\r\n  }\r\n\r\n  for (c3_i84 = 0; c3_i84 < 49; c3_i84++) {\r\n    c3_c_Hinv[c3_i84] = c3_d_Hinv[c3_i84];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i85 = 0; c3_i85 < 6; c3_i85++) {\r\n    c3_DataType[c3_i85] = c3_cv0[c3_i85];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  for (c3_i86 = 0; c3_i86 < 3; c3_i86++) {\r\n    c3_u[c3_i86] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i87 = 0; c3_i87 < 15; c3_i87++) {\r\n    c3_useq[c3_i87] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i88 = 0; c3_i88 < 25; c3_i88++) {\r\n    c3_iAout[c3_i88] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i89 = 0; c3_i89 < 10; c3_i89++) {\r\n    c3_b_u[c3_i89] = c3_rseq[c3_i89];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  for (c3_i90 = 0; c3_i90 < 6; c3_i90++) {\r\n    c3_c_u[c3_i90] = c3_vseq[c3_i90];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i91 = 0; c3_i91 < 3; c3_i91++) {\r\n    c3_d_u[c3_i91] = c3_umin[c3_i91];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_d_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i92 = 0; c3_i92 < 3; c3_i92++) {\r\n    c3_e_u[c3_i92] = c3_umax[c3_i92];\r\n  }\r\n\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i93 = 0; c3_i93 < 2; c3_i93++) {\r\n    c3_f_u[c3_i93] = c3_ymin[c3_i93];\r\n  }\r\n\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", c3_f_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  for (c3_i94 = 0; c3_i94 < 2; c3_i94++) {\r\n    c3_g_u[c3_i94] = c3_ymax[c3_i94];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_g_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i95 = 0; c3_i95 < 11; c3_i95++) {\r\n    c3_i_u[c3_i95] = c3_x[c3_i95];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 11), FALSE);\r\n  for (c3_i96 = 0; c3_i96 < 3; c3_i96++) {\r\n    c3_j_u[c3_i96] = c3_old_u[c3_i96];\r\n  }\r\n\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", c3_j_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i97 = 0; c3_i97 < 25; c3_i97++) {\r\n    c3_k_u[c3_i97] = c3_iA[c3_i97];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 25),\r\n                FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i98 = 0; c3_i98 < 49; c3_i98++) {\r\n    c3_p_u[c3_i98] = c3_d_Hinv[c3_i98];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 7, 7),\r\n                FALSE);\r\n  for (c3_i99 = 0; c3_i99 < 66; c3_i99++) {\r\n    c3_q_u[c3_i99] = c3_d_Kx[c3_i99];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 11, 6),\r\n                FALSE);\r\n  for (c3_i100 = 0; c3_i100 < 18; c3_i100++) {\r\n    c3_r_u[c3_i100] = c3_d_Ku1[c3_i100];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 3, 6),\r\n                FALSE);\r\n  for (c3_i101 = 0; c3_i101 < 90; c3_i101++) {\r\n    c3_s_u[c3_i101] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 15, 6),\r\n                FALSE);\r\n  for (c3_i102 = 0; c3_i102 < 60; c3_i102++) {\r\n    c3_t_u[c3_i102] = c3_d_Kr[c3_i102];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 10, 6),\r\n                FALSE);\r\n  for (c3_i103 = 0; c3_i103 < 36; c3_i103++) {\r\n    c3_u_u[c3_i103] = 0.0;\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 6, 6),\r\n                FALSE);\r\n  for (c3_i104 = 0; c3_i104 < 18; c3_i104++) {\r\n    c3_v_u[c3_i104] = c3_d_Mlim[c3_i104];\r\n  }\r\n\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", c3_v_u, 0, 0U, 1U, 0U, 1, 18), FALSE);\r\n  for (c3_i105 = 0; c3_i105 < 198; c3_i105++) {\r\n    c3_w_u[c3_i105] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 18, 11),\r\n                FALSE);\r\n  for (c3_i106 = 0; c3_i106 < 54; c3_i106++) {\r\n    c3_x_u[c3_i106] = c3_d_Mu1[c3_i106];\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 2, 18, 3),\r\n                FALSE);\r\n  for (c3_i107 = 0; c3_i107 < 108; c3_i107++) {\r\n    c3_y_u[c3_i107] = 0.0;\r\n  }\r\n\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", c3_y_u, 0, 0U, 1U, 0U, 2, 18, 6),\r\n                FALSE);\r\n  for (c3_i108 = 0; c3_i108 < 7; c3_i108++) {\r\n    c3_ab_u[c3_i108] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 7), FALSE);\r\n  for (c3_i109 = 0; c3_i109 < 15; c3_i109++) {\r\n    c3_bb_u[c3_i109] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 15),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i110 = 0; c3_i110 < 3; c3_i110++) {\r\n    c3_db_u[c3_i110] = 0.0;\r\n  }\r\n\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", c3_db_u, 0, 0U, 1U, 0U, 1, 3),\r\n                FALSE);\r\n  for (c3_i111 = 0; c3_i111 < 2; c3_i111++) {\r\n    c3_eb_u[c3_i111] = 0.0;\r\n  }\r\n\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", c3_eb_u, 0, 0U, 1U, 0U, 1, 2),\r\n                FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i112 = 0; c3_i112 < 49; c3_i112++) {\r\n    c3_rb_u[c3_i112] = c3_d_H[c3_i112];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 7, 7),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i113 = 0; c3_i113 < 5; c3_i113++) {\r\n    c3_tb_u[c3_i113] = c3_d_blocking_moves[c3_i113];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 5),\r\n                FALSE);\r\n  for (c3_i114 = 0; c3_i114 < 49; c3_i114++) {\r\n    c3_ub_u[c3_i114] = c3_d_Linv[c3_i114];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 7, 7),\r\n                FALSE);\r\n  for (c3_i115 = 0; c3_i115 < 126; c3_i115++) {\r\n    c3_vb_u[c3_i115] = c3_d_Ac[c3_i115];\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 18, 7),\r\n                FALSE);\r\n  for (c3_i116 = 0; c3_i116 < 2; c3_i116++) {\r\n    c3_wb_u[c3_i116] = c3_ywt[c3_i116];\r\n  }\r\n\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", c3_wb_u, 0, 0U, 1U, 0U, 1, 2),\r\n                FALSE);\r\n  for (c3_i117 = 0; c3_i117 < 3; c3_i117++) {\r\n    c3_xb_u[c3_i117] = c3_duwt[c3_i117];\r\n  }\r\n\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", c3_xb_u, 0, 0U, 1U, 0U, 1, 3),\r\n                FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\", c3_dv20);\r\n  for (c3_i118 = 0; c3_i118 < 3; c3_i118++) {\r\n    c3_u[c3_i118] = c3_dv20[c3_i118];\r\n  }\r\n\r\n  c3_cost = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv21);\r\n  for (c3_i119 = 0; c3_i119 < 15; c3_i119++) {\r\n    c3_useq[c3_i119] = c3_dv21[c3_i119];\r\n  }\r\n\r\n  c3_status = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i120 = 0; c3_i120 < 25; c3_i120++) {\r\n    c3_iAout[c3_i120] = c3_bv1[c3_i120];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  for (c3_i121 = 0; c3_i121 < 3; c3_i121++) {\r\n    (*c3_pc_u)[c3_i121] = c3_u[c3_i121];\r\n  }\r\n\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i122 = 0; c3_i122 < 15; c3_i122++) {\r\n    (*c3_c_useq)[c3_i122] = c3_useq[c3_i122];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i123 = 0; c3_i123 < 25; c3_i123++) {\r\n    (*c3_c_iAout)[c3_i123] = c3_iAout[c3_i123];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i124;\r\n  boolean_T c3_b_inData[25];\r\n  int32_T c3_i125;\r\n  boolean_T c3_u[25];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i124 = 0; c3_i124 < 25; c3_i124++) {\r\n    c3_b_inData[c3_i124] = (*(boolean_T (*)[25])c3_inData)[c3_i124];\r\n  }\r\n\r\n  for (c3_i125 = 0; c3_i125 < 25; c3_i125++) {\r\n    c3_u[c3_i125] = c3_b_inData[c3_i125];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 25), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[25];\r\n  int32_T c3_i126;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i126 = 0; c3_i126 < 25; c3_i126++) {\r\n    (*(boolean_T (*)[25])c3_outData)[c3_i126] = c3_y[c3_i126];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_cost;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_cost = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_cost), &c3_thisId);\r\n  sf_mex_destroy(&c3_cost);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i127;\r\n  int32_T c3_i128;\r\n  int32_T c3_i129;\r\n  real_T c3_b_inData[15];\r\n  int32_T c3_i130;\r\n  int32_T c3_i131;\r\n  int32_T c3_i132;\r\n  real_T c3_u[15];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i127 = 0;\r\n  for (c3_i128 = 0; c3_i128 < 3; c3_i128++) {\r\n    for (c3_i129 = 0; c3_i129 < 5; c3_i129++) {\r\n      c3_b_inData[c3_i129 + c3_i127] = (*(real_T (*)[15])c3_inData)[c3_i129 +\r\n        c3_i127];\r\n    }\r\n\r\n    c3_i127 += 5;\r\n  }\r\n\r\n  c3_i130 = 0;\r\n  for (c3_i131 = 0; c3_i131 < 3; c3_i131++) {\r\n    for (c3_i132 = 0; c3_i132 < 5; c3_i132++) {\r\n      c3_u[c3_i132 + c3_i130] = c3_b_inData[c3_i132 + c3_i130];\r\n    }\r\n\r\n    c3_i130 += 5;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 5, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[15];\r\n  int32_T c3_i133;\r\n  int32_T c3_i134;\r\n  int32_T c3_i135;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  c3_i133 = 0;\r\n  for (c3_i134 = 0; c3_i134 < 3; c3_i134++) {\r\n    for (c3_i135 = 0; c3_i135 < 5; c3_i135++) {\r\n      (*(real_T (*)[15])c3_outData)[c3_i135 + c3_i133] = c3_y[c3_i135 + c3_i133];\r\n    }\r\n\r\n    c3_i133 += 5;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i136;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i137;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i136 = 0; c3_i136 < 3; c3_i136++) {\r\n    c3_b_inData[c3_i136] = (*(real_T (*)[3])c3_inData)[c3_i136];\r\n  }\r\n\r\n  for (c3_i137 = 0; c3_i137 < 3; c3_i137++) {\r\n    c3_u[c3_i137] = c3_b_inData[c3_i137];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i138;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_u);\r\n  for (c3_i138 = 0; c3_i138 < 3; c3_i138++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i138] = c3_y[c3_i138];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i139;\r\n  real_T c3_b_inData[2];\r\n  int32_T c3_i140;\r\n  real_T c3_u[2];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i139 = 0; c3_i139 < 2; c3_i139++) {\r\n    c3_b_inData[c3_i139] = (*(real_T (*)[2])c3_inData)[c3_i139];\r\n  }\r\n\r\n  for (c3_i140 = 0; c3_i140 < 2; c3_i140++) {\r\n    c3_u[c3_i140] = c3_b_inData[c3_i140];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  real_T c3_b_inData[11];\r\n  int32_T c3_i142;\r\n  real_T c3_u[11];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i141 = 0; c3_i141 < 11; c3_i141++) {\r\n    c3_b_inData[c3_i141] = (*(real_T (*)[11])c3_inData)[c3_i141];\r\n  }\r\n\r\n  for (c3_i142 = 0; c3_i142 < 11; c3_i142++) {\r\n    c3_u[c3_i142] = c3_b_inData[c3_i142];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 11), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i143;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i144;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i143 = 0; c3_i143 < 6; c3_i143++) {\r\n    c3_b_inData[c3_i143] = (*(real_T (*)[6])c3_inData)[c3_i143];\r\n  }\r\n\r\n  for (c3_i144 = 0; c3_i144 < 6; c3_i144++) {\r\n    c3_u[c3_i144] = c3_b_inData[c3_i144];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i145;\r\n  real_T c3_b_inData[10];\r\n  int32_T c3_i146;\r\n  real_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i145 = 0; c3_i145 < 10; c3_i145++) {\r\n    c3_b_inData[c3_i145] = (*(real_T (*)[10])c3_inData)[c3_i145];\r\n  }\r\n\r\n  for (c3_i146 = 0; c3_i146 < 10; c3_i146++) {\r\n    c3_u[c3_i146] = c3_b_inData[c3_i146];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i147;\r\n  int32_T c3_i148;\r\n  int32_T c3_i149;\r\n  real_T c3_b_inData[126];\r\n  int32_T c3_i150;\r\n  int32_T c3_i151;\r\n  int32_T c3_i152;\r\n  real_T c3_u[126];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i147 = 0;\r\n  for (c3_i148 = 0; c3_i148 < 7; c3_i148++) {\r\n    for (c3_i149 = 0; c3_i149 < 18; c3_i149++) {\r\n      c3_b_inData[c3_i149 + c3_i147] = (*(real_T (*)[126])c3_inData)[c3_i149 +\r\n        c3_i147];\r\n    }\r\n\r\n    c3_i147 += 18;\r\n  }\r\n\r\n  c3_i150 = 0;\r\n  for (c3_i151 = 0; c3_i151 < 7; c3_i151++) {\r\n    for (c3_i152 = 0; c3_i152 < 18; c3_i152++) {\r\n      c3_u[c3_i152 + c3_i150] = c3_b_inData[c3_i152 + c3_i150];\r\n    }\r\n\r\n    c3_i150 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i153;\r\n  int32_T c3_i154;\r\n  int32_T c3_i155;\r\n  real_T c3_b_inData[49];\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  int32_T c3_i158;\r\n  real_T c3_u[49];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i153 = 0;\r\n  for (c3_i154 = 0; c3_i154 < 7; c3_i154++) {\r\n    for (c3_i155 = 0; c3_i155 < 7; c3_i155++) {\r\n      c3_b_inData[c3_i155 + c3_i153] = (*(real_T (*)[49])c3_inData)[c3_i155 +\r\n        c3_i153];\r\n    }\r\n\r\n    c3_i153 += 7;\r\n  }\r\n\r\n  c3_i156 = 0;\r\n  for (c3_i157 = 0; c3_i157 < 7; c3_i157++) {\r\n    for (c3_i158 = 0; c3_i158 < 7; c3_i158++) {\r\n      c3_u[c3_i158 + c3_i156] = c3_b_inData[c3_i158 + c3_i156];\r\n    }\r\n\r\n    c3_i156 += 7;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 7, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i159;\r\n  real_T c3_b_inData[5];\r\n  int32_T c3_i160;\r\n  real_T c3_u[5];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i159 = 0; c3_i159 < 5; c3_i159++) {\r\n    c3_b_inData[c3_i159] = (*(real_T (*)[5])c3_inData)[c3_i159];\r\n  }\r\n\r\n  for (c3_i160 = 0; c3_i160 < 5; c3_i160++) {\r\n    c3_u[c3_i160] = c3_b_inData[c3_i160];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 5), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i161;\r\n  real_T c3_b_inData[15];\r\n  int32_T c3_i162;\r\n  real_T c3_u[15];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i161 = 0; c3_i161 < 15; c3_i161++) {\r\n    c3_b_inData[c3_i161] = (*(real_T (*)[15])c3_inData)[c3_i161];\r\n  }\r\n\r\n  for (c3_i162 = 0; c3_i162 < 15; c3_i162++) {\r\n    c3_u[c3_i162] = c3_b_inData[c3_i162];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 15), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i163;\r\n  real_T c3_b_inData[7];\r\n  int32_T c3_i164;\r\n  real_T c3_u[7];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i163 = 0; c3_i163 < 7; c3_i163++) {\r\n    c3_b_inData[c3_i163] = (*(real_T (*)[7])c3_inData)[c3_i163];\r\n  }\r\n\r\n  for (c3_i164 = 0; c3_i164 < 7; c3_i164++) {\r\n    c3_u[c3_i164] = c3_b_inData[c3_i164];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i165;\r\n  int32_T c3_i166;\r\n  int32_T c3_i167;\r\n  real_T c3_b_inData[108];\r\n  int32_T c3_i168;\r\n  int32_T c3_i169;\r\n  int32_T c3_i170;\r\n  real_T c3_u[108];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i165 = 0;\r\n  for (c3_i166 = 0; c3_i166 < 6; c3_i166++) {\r\n    for (c3_i167 = 0; c3_i167 < 18; c3_i167++) {\r\n      c3_b_inData[c3_i167 + c3_i165] = (*(real_T (*)[108])c3_inData)[c3_i167 +\r\n        c3_i165];\r\n    }\r\n\r\n    c3_i165 += 18;\r\n  }\r\n\r\n  c3_i168 = 0;\r\n  for (c3_i169 = 0; c3_i169 < 6; c3_i169++) {\r\n    for (c3_i170 = 0; c3_i170 < 18; c3_i170++) {\r\n      c3_u[c3_i170 + c3_i168] = c3_b_inData[c3_i170 + c3_i168];\r\n    }\r\n\r\n    c3_i168 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i171;\r\n  int32_T c3_i172;\r\n  int32_T c3_i173;\r\n  real_T c3_b_inData[54];\r\n  int32_T c3_i174;\r\n  int32_T c3_i175;\r\n  int32_T c3_i176;\r\n  real_T c3_u[54];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i171 = 0;\r\n  for (c3_i172 = 0; c3_i172 < 3; c3_i172++) {\r\n    for (c3_i173 = 0; c3_i173 < 18; c3_i173++) {\r\n      c3_b_inData[c3_i173 + c3_i171] = (*(real_T (*)[54])c3_inData)[c3_i173 +\r\n        c3_i171];\r\n    }\r\n\r\n    c3_i171 += 18;\r\n  }\r\n\r\n  c3_i174 = 0;\r\n  for (c3_i175 = 0; c3_i175 < 3; c3_i175++) {\r\n    for (c3_i176 = 0; c3_i176 < 18; c3_i176++) {\r\n      c3_u[c3_i176 + c3_i174] = c3_b_inData[c3_i176 + c3_i174];\r\n    }\r\n\r\n    c3_i174 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i177;\r\n  int32_T c3_i178;\r\n  int32_T c3_i179;\r\n  real_T c3_b_inData[198];\r\n  int32_T c3_i180;\r\n  int32_T c3_i181;\r\n  int32_T c3_i182;\r\n  real_T c3_u[198];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i177 = 0;\r\n  for (c3_i178 = 0; c3_i178 < 11; c3_i178++) {\r\n    for (c3_i179 = 0; c3_i179 < 18; c3_i179++) {\r\n      c3_b_inData[c3_i179 + c3_i177] = (*(real_T (*)[198])c3_inData)[c3_i179 +\r\n        c3_i177];\r\n    }\r\n\r\n    c3_i177 += 18;\r\n  }\r\n\r\n  c3_i180 = 0;\r\n  for (c3_i181 = 0; c3_i181 < 11; c3_i181++) {\r\n    for (c3_i182 = 0; c3_i182 < 18; c3_i182++) {\r\n      c3_u[c3_i182 + c3_i180] = c3_b_inData[c3_i182 + c3_i180];\r\n    }\r\n\r\n    c3_i180 += 18;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 18, 11), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i183;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i184;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i183 = 0; c3_i183 < 18; c3_i183++) {\r\n    c3_b_inData[c3_i183] = (*(real_T (*)[18])c3_inData)[c3_i183];\r\n  }\r\n\r\n  for (c3_i184 = 0; c3_i184 < 18; c3_i184++) {\r\n    c3_u[c3_i184] = c3_b_inData[c3_i184];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 18), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i185;\r\n  int32_T c3_i186;\r\n  int32_T c3_i187;\r\n  real_T c3_b_inData[36];\r\n  int32_T c3_i188;\r\n  int32_T c3_i189;\r\n  int32_T c3_i190;\r\n  real_T c3_u[36];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i185 = 0;\r\n  for (c3_i186 = 0; c3_i186 < 6; c3_i186++) {\r\n    for (c3_i187 = 0; c3_i187 < 6; c3_i187++) {\r\n      c3_b_inData[c3_i187 + c3_i185] = (*(real_T (*)[36])c3_inData)[c3_i187 +\r\n        c3_i185];\r\n    }\r\n\r\n    c3_i185 += 6;\r\n  }\r\n\r\n  c3_i188 = 0;\r\n  for (c3_i189 = 0; c3_i189 < 6; c3_i189++) {\r\n    for (c3_i190 = 0; c3_i190 < 6; c3_i190++) {\r\n      c3_u[c3_i190 + c3_i188] = c3_b_inData[c3_i190 + c3_i188];\r\n    }\r\n\r\n    c3_i188 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_t_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i191;\r\n  int32_T c3_i192;\r\n  int32_T c3_i193;\r\n  real_T c3_b_inData[60];\r\n  int32_T c3_i194;\r\n  int32_T c3_i195;\r\n  int32_T c3_i196;\r\n  real_T c3_u[60];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i191 = 0;\r\n  for (c3_i192 = 0; c3_i192 < 6; c3_i192++) {\r\n    for (c3_i193 = 0; c3_i193 < 10; c3_i193++) {\r\n      c3_b_inData[c3_i193 + c3_i191] = (*(real_T (*)[60])c3_inData)[c3_i193 +\r\n        c3_i191];\r\n    }\r\n\r\n    c3_i191 += 10;\r\n  }\r\n\r\n  c3_i194 = 0;\r\n  for (c3_i195 = 0; c3_i195 < 6; c3_i195++) {\r\n    for (c3_i196 = 0; c3_i196 < 10; c3_i196++) {\r\n      c3_u[c3_i196 + c3_i194] = c3_b_inData[c3_i196 + c3_i194];\r\n    }\r\n\r\n    c3_i194 += 10;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 10, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_u_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i197;\r\n  int32_T c3_i198;\r\n  int32_T c3_i199;\r\n  real_T c3_b_inData[90];\r\n  int32_T c3_i200;\r\n  int32_T c3_i201;\r\n  int32_T c3_i202;\r\n  real_T c3_u[90];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i197 = 0;\r\n  for (c3_i198 = 0; c3_i198 < 6; c3_i198++) {\r\n    for (c3_i199 = 0; c3_i199 < 15; c3_i199++) {\r\n      c3_b_inData[c3_i199 + c3_i197] = (*(real_T (*)[90])c3_inData)[c3_i199 +\r\n        c3_i197];\r\n    }\r\n\r\n    c3_i197 += 15;\r\n  }\r\n\r\n  c3_i200 = 0;\r\n  for (c3_i201 = 0; c3_i201 < 6; c3_i201++) {\r\n    for (c3_i202 = 0; c3_i202 < 15; c3_i202++) {\r\n      c3_u[c3_i202 + c3_i200] = c3_b_inData[c3_i202 + c3_i200];\r\n    }\r\n\r\n    c3_i200 += 15;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 15, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_v_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i203;\r\n  int32_T c3_i204;\r\n  int32_T c3_i205;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i206;\r\n  int32_T c3_i207;\r\n  int32_T c3_i208;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i203 = 0;\r\n  for (c3_i204 = 0; c3_i204 < 6; c3_i204++) {\r\n    for (c3_i205 = 0; c3_i205 < 3; c3_i205++) {\r\n      c3_b_inData[c3_i205 + c3_i203] = (*(real_T (*)[18])c3_inData)[c3_i205 +\r\n        c3_i203];\r\n    }\r\n\r\n    c3_i203 += 3;\r\n  }\r\n\r\n  c3_i206 = 0;\r\n  for (c3_i207 = 0; c3_i207 < 6; c3_i207++) {\r\n    for (c3_i208 = 0; c3_i208 < 3; c3_i208++) {\r\n      c3_u[c3_i208 + c3_i206] = c3_b_inData[c3_i208 + c3_i206];\r\n    }\r\n\r\n    c3_i206 += 3;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 3, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_w_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i209;\r\n  int32_T c3_i210;\r\n  int32_T c3_i211;\r\n  real_T c3_b_inData[66];\r\n  int32_T c3_i212;\r\n  int32_T c3_i213;\r\n  int32_T c3_i214;\r\n  real_T c3_u[66];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i209 = 0;\r\n  for (c3_i210 = 0; c3_i210 < 6; c3_i210++) {\r\n    for (c3_i211 = 0; c3_i211 < 11; c3_i211++) {\r\n      c3_b_inData[c3_i211 + c3_i209] = (*(real_T (*)[66])c3_inData)[c3_i211 +\r\n        c3_i209];\r\n    }\r\n\r\n    c3_i209 += 11;\r\n  }\r\n\r\n  c3_i212 = 0;\r\n  for (c3_i213 = 0; c3_i213 < 6; c3_i213++) {\r\n    for (c3_i214 = 0; c3_i214 < 11; c3_i214++) {\r\n      c3_u[c3_i214 + c3_i212] = c3_b_inData[c3_i214 + c3_i212];\r\n    }\r\n\r\n    c3_i212 += 11;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 11, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_x_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i215;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i216;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i215 = 0; c3_i215 < 6; c3_i215++) {\r\n    c3_b_inData[c3_i215] = (*(char_T (*)[6])c3_inData)[c3_i215];\r\n  }\r\n\r\n  for (c3_i216 = 0; c3_i216 < 6; c3_i216++) {\r\n    c3_u[c3_i216] = c3_b_inData[c3_i216];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic void c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c3_u, const char_T *c3_identifier, real_T c3_y[3])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv22[3];\r\n  int32_T c3_i217;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 1, 3);\r\n  for (c3_i217 = 0; c3_i217 < 3; c3_i217++) {\r\n    c3_y[c3_i217] = c3_dv22[c3_i217];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic real_T c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_cost, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_cost), &c3_thisId);\r\n  sf_mex_destroy(&c3_cost);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d32;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d32, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d32;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[15])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15])\r\n{\r\n  real_T c3_dv23[15];\r\n  int32_T c3_i218;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 5, 3);\r\n  for (c3_i218 = 0; c3_i218 < 15; c3_i218++) {\r\n    c3_y[c3_i218] = c3_dv23[c3_i218];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[25])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[25])\r\n{\r\n  boolean_T c3_bv2[25];\r\n  int32_T c3_i219;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 25);\r\n  for (c3_i219 = 0; c3_i219 < 25; c3_i219++) {\r\n    c3_y[c3_i219] = c3_bv2[c3_i219];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_y_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i220;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i220, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i220;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[49])\r\n{\r\n  real_T c3_dv24[49];\r\n  int32_T c3_i221;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 2, 7, 7);\r\n  for (c3_i221 = 0; c3_i221 < 49; c3_i221++) {\r\n    c3_y[c3_i221] = c3_dv24[c3_i221];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[49];\r\n  int32_T c3_i222;\r\n  int32_T c3_i223;\r\n  int32_T c3_i224;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i222 = 0;\r\n  for (c3_i223 = 0; c3_i223 < 7; c3_i223++) {\r\n    for (c3_i224 = 0; c3_i224 < 7; c3_i224++) {\r\n      (*(real_T (*)[49])c3_outData)[c3_i224 + c3_i222] = c3_y[c3_i224 + c3_i222];\r\n    }\r\n\r\n    c3_i222 += 7;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[66])\r\n{\r\n  real_T c3_dv25[66];\r\n  int32_T c3_i225;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 11,\r\n                6);\r\n  for (c3_i225 = 0; c3_i225 < 66; c3_i225++) {\r\n    c3_y[c3_i225] = c3_dv25[c3_i225];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[66];\r\n  int32_T c3_i226;\r\n  int32_T c3_i227;\r\n  int32_T c3_i228;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i226 = 0;\r\n  for (c3_i227 = 0; c3_i227 < 6; c3_i227++) {\r\n    for (c3_i228 = 0; c3_i228 < 11; c3_i228++) {\r\n      (*(real_T (*)[66])c3_outData)[c3_i228 + c3_i226] = c3_y[c3_i228 + c3_i226];\r\n    }\r\n\r\n    c3_i226 += 11;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv26[18];\r\n  int32_T c3_i229;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 3, 6);\r\n  for (c3_i229 = 0; c3_i229 < 18; c3_i229++) {\r\n    c3_y[c3_i229] = c3_dv26[c3_i229];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i230;\r\n  int32_T c3_i231;\r\n  int32_T c3_i232;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  c3_i230 = 0;\r\n  for (c3_i231 = 0; c3_i231 < 6; c3_i231++) {\r\n    for (c3_i232 = 0; c3_i232 < 3; c3_i232++) {\r\n      (*(real_T (*)[18])c3_outData)[c3_i232 + c3_i230] = c3_y[c3_i232 + c3_i230];\r\n    }\r\n\r\n    c3_i230 += 3;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[90])\r\n{\r\n  real_T c3_dv27[90];\r\n  int32_T c3_i233;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 2, 15,\r\n                6);\r\n  for (c3_i233 = 0; c3_i233 < 90; c3_i233++) {\r\n    c3_y[c3_i233] = c3_dv27[c3_i233];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[90];\r\n  int32_T c3_i234;\r\n  int32_T c3_i235;\r\n  int32_T c3_i236;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i234 = 0;\r\n  for (c3_i235 = 0; c3_i235 < 6; c3_i235++) {\r\n    for (c3_i236 = 0; c3_i236 < 15; c3_i236++) {\r\n      (*(real_T (*)[90])c3_outData)[c3_i236 + c3_i234] = c3_y[c3_i236 + c3_i234];\r\n    }\r\n\r\n    c3_i234 += 15;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60])\r\n{\r\n  real_T c3_dv28[60];\r\n  int32_T c3_i237;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 10,\r\n                6);\r\n  for (c3_i237 = 0; c3_i237 < 60; c3_i237++) {\r\n    c3_y[c3_i237] = c3_dv28[c3_i237];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kr;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[60];\r\n  int32_T c3_i238;\r\n  int32_T c3_i239;\r\n  int32_T c3_i240;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kr = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kr), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kr);\r\n  c3_i238 = 0;\r\n  for (c3_i239 = 0; c3_i239 < 6; c3_i239++) {\r\n    for (c3_i240 = 0; c3_i240 < 10; c3_i240++) {\r\n      (*(real_T (*)[60])c3_outData)[c3_i240 + c3_i238] = c3_y[c3_i240 + c3_i238];\r\n    }\r\n\r\n    c3_i238 += 10;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[36])\r\n{\r\n  real_T c3_dv29[36];\r\n  int32_T c3_i241;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i241 = 0; c3_i241 < 36; c3_i241++) {\r\n    c3_y[c3_i241] = c3_dv29[c3_i241];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[36];\r\n  int32_T c3_i242;\r\n  int32_T c3_i243;\r\n  int32_T c3_i244;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kv);\r\n  c3_i242 = 0;\r\n  for (c3_i243 = 0; c3_i243 < 6; c3_i243++) {\r\n    for (c3_i244 = 0; c3_i244 < 6; c3_i244++) {\r\n      (*(real_T (*)[36])c3_outData)[c3_i244 + c3_i242] = c3_y[c3_i244 + c3_i242];\r\n    }\r\n\r\n    c3_i242 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv30[18];\r\n  int32_T c3_i245;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv30, 1, 0, 0U, 1, 0U, 1, 18);\r\n  for (c3_i245 = 0; c3_i245 < 18; c3_i245++) {\r\n    c3_y[c3_i245] = c3_dv30[c3_i245];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mlim;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i246;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mlim = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mlim), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mlim);\r\n  for (c3_i246 = 0; c3_i246 < 18; c3_i246++) {\r\n    (*(real_T (*)[18])c3_outData)[c3_i246] = c3_y[c3_i246];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[198])\r\n{\r\n  real_T c3_dv31[198];\r\n  int32_T c3_i247;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv31, 1, 0, 0U, 1, 0U, 2, 18,\r\n                11);\r\n  for (c3_i247 = 0; c3_i247 < 198; c3_i247++) {\r\n    c3_y[c3_i247] = c3_dv31[c3_i247];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[198];\r\n  int32_T c3_i248;\r\n  int32_T c3_i249;\r\n  int32_T c3_i250;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  c3_i248 = 0;\r\n  for (c3_i249 = 0; c3_i249 < 11; c3_i249++) {\r\n    for (c3_i250 = 0; c3_i250 < 18; c3_i250++) {\r\n      (*(real_T (*)[198])c3_outData)[c3_i250 + c3_i248] = c3_y[c3_i250 + c3_i248];\r\n    }\r\n\r\n    c3_i248 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[54])\r\n{\r\n  real_T c3_dv32[54];\r\n  int32_T c3_i251;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv32, 1, 0, 0U, 1, 0U, 2, 18,\r\n                3);\r\n  for (c3_i251 = 0; c3_i251 < 54; c3_i251++) {\r\n    c3_y[c3_i251] = c3_dv32[c3_i251];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mu1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[54];\r\n  int32_T c3_i252;\r\n  int32_T c3_i253;\r\n  int32_T c3_i254;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mu1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mu1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mu1);\r\n  c3_i252 = 0;\r\n  for (c3_i253 = 0; c3_i253 < 3; c3_i253++) {\r\n    for (c3_i254 = 0; c3_i254 < 18; c3_i254++) {\r\n      (*(real_T (*)[54])c3_outData)[c3_i254 + c3_i252] = c3_y[c3_i254 + c3_i252];\r\n    }\r\n\r\n    c3_i252 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[108])\r\n{\r\n  real_T c3_dv33[108];\r\n  int32_T c3_i255;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv33, 1, 0, 0U, 1, 0U, 2, 18,\r\n                6);\r\n  for (c3_i255 = 0; c3_i255 < 108; c3_i255++) {\r\n    c3_y[c3_i255] = c3_dv33[c3_i255];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[108];\r\n  int32_T c3_i256;\r\n  int32_T c3_i257;\r\n  int32_T c3_i258;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_t_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mv);\r\n  c3_i256 = 0;\r\n  for (c3_i257 = 0; c3_i257 < 6; c3_i257++) {\r\n    for (c3_i258 = 0; c3_i258 < 18; c3_i258++) {\r\n      (*(real_T (*)[108])c3_outData)[c3_i258 + c3_i256] = c3_y[c3_i258 + c3_i256];\r\n    }\r\n\r\n    c3_i256 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[7])\r\n{\r\n  real_T c3_dv34[7];\r\n  int32_T c3_i259;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv34, 1, 0, 0U, 1, 0U, 1, 7);\r\n  for (c3_i259 = 0; c3_i259 < 7; c3_i259++) {\r\n    c3_y[c3_i259] = c3_dv34[c3_i259];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_q_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[7];\r\n  int32_T c3_i260;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i260 = 0; c3_i260 < 7; c3_i260++) {\r\n    (*(real_T (*)[7])c3_outData)[c3_i260] = c3_y[c3_i260];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_v_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15])\r\n{\r\n  real_T c3_dv35[15];\r\n  int32_T c3_i261;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv35, 1, 0, 0U, 1, 0U, 1, 15);\r\n  for (c3_i261 = 0; c3_i261 < 15; c3_i261++) {\r\n    c3_y[c3_i261] = c3_dv35[c3_i261];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_r_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_utarget;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[15];\r\n  int32_T c3_i262;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_utarget = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_v_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_utarget), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_utarget);\r\n  for (c3_i262 = 0; c3_i262 < 15; c3_i262++) {\r\n    (*(real_T (*)[15])c3_outData)[c3_i262] = c3_y[c3_i262];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_w_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[2])\r\n{\r\n  real_T c3_dv36[2];\r\n  int32_T c3_i263;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv36, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c3_i263 = 0; c3_i263 < 2; c3_i263++) {\r\n    c3_y[c3_i263] = c3_dv36[c3_i263];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_s_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_yoff;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[2];\r\n  int32_T c3_i264;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_yoff = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_w_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_yoff), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_yoff);\r\n  for (c3_i264 = 0; c3_i264 < 2; c3_i264++) {\r\n    (*(real_T (*)[2])c3_outData)[c3_i264] = c3_y[c3_i264];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_x_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[5])\r\n{\r\n  real_T c3_dv37[5];\r\n  int32_T c3_i265;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv37, 1, 0, 0U, 1, 0U, 2, 1, 5);\r\n  for (c3_i265 = 0; c3_i265 < 5; c3_i265++) {\r\n    c3_y[c3_i265] = c3_dv37[c3_i265];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_t_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[5];\r\n  int32_T c3_i266;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_x_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i266 = 0; c3_i266 < 5; c3_i266++) {\r\n    (*(real_T (*)[5])c3_outData)[c3_i266] = c3_y[c3_i266];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_y_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[126])\r\n{\r\n  real_T c3_dv38[126];\r\n  int32_T c3_i267;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv38, 1, 0, 0U, 1, 0U, 2, 18,\r\n                7);\r\n  for (c3_i267 = 0; c3_i267 < 126; c3_i267++) {\r\n    c3_y[c3_i267] = c3_dv38[c3_i267];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_u_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ac;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[126];\r\n  int32_T c3_i268;\r\n  int32_T c3_i269;\r\n  int32_T c3_i270;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ac = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ac), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ac);\r\n  c3_i268 = 0;\r\n  for (c3_i269 = 0; c3_i269 < 7; c3_i269++) {\r\n    for (c3_i270 = 0; c3_i270 < 18; c3_i270++) {\r\n      (*(real_T (*)[126])c3_outData)[c3_i270 + c3_i268] = c3_y[c3_i270 + c3_i268];\r\n    }\r\n\r\n    c3_i268 += 18;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_ab_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_bb_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_bb_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2419309395U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2632617900U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(760137875U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3464894829U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"IWfv4yRSzPuXdHsJRcV3N\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(11);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(25);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(15);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(11);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(7);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(18);\r\n      pr[1] = (double)(11);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(5);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(15);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(5);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(25);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 11;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 25;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)\r\n            c3_d_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 5;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)c3_f_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 11;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_w_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 3;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_v_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 15;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_u_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 10;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_t_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_s_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 18;\r\n          _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_r_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 11;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_q_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 15;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_r_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)\r\n            c3_d_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)\r\n            c3_s_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)c3_f_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 5;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_t_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 7;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 18;\r\n          dimVector[1]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)\r\n            c3_u_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 25;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_switch_in;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[10];\r\n          real_T (*c3_vseq)[6];\r\n          real_T (*c3_x)[11];\r\n          real_T (*c3_old_u)[3];\r\n          boolean_T (*c3_iA)[25];\r\n          real_T (*c3_umin)[3];\r\n          real_T (*c3_umax)[3];\r\n          real_T (*c3_ymin)[2];\r\n          real_T (*c3_ymax)[2];\r\n          real_T (*c3_ywt)[2];\r\n          real_T (*c3_duwt)[3];\r\n          real_T (*c3_u)[3];\r\n          real_T (*c3_useq)[15];\r\n          boolean_T (*c3_iAout)[25];\r\n          c3_iAout = (boolean_T (*)[25])ssGetOutputPortSignal(chartInstance->S,\r\n            5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[25])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[11])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, *c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, *c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, *c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, *c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, *c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, *c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, *c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, *c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"UZcJkDgeSZoOkVp9M5i6hE\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(2642584985U));\r\n  ssSetChecksum1(S,(1939236384U));\r\n  ssSetChecksum2(S,(136771085U));\r\n  ssSetChecksum3(S,(894209176U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[49];\r\n  real_T c3_Kx[66];\r\n  real_T c3_Ku1[18];\r\n  real_T c3_Kut[90];\r\n  real_T c3_Kr[60];\r\n  real_T c3_Kv[36];\r\n  real_T c3_Mlim[18];\r\n  real_T c3_Mx[198];\r\n  real_T c3_Mu1[54];\r\n  real_T c3_Mv[108];\r\n  real_T c3_z_degrees[7];\r\n  real_T c3_utarget[15];\r\n  real_T c3_p;\r\n  real_T c3_uoff[3];\r\n  real_T c3_yoff[2];\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[49];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[5];\r\n  real_T c3_Linv[49];\r\n  real_T c3_Ac[126];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (5.0)\r\n#define c4_b_ny                        (2.0)\r\n#define c4_b_nv                        (1.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (1.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10]);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[6]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[6]);\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier);\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic void c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2]);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_dv0[2];\r\n  int32_T c4_i0;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      c4_dv0, 0, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i0 = 0; c4_i0 < 2; c4_i0++) {\r\n    chartInstance->c4_yoff[c4_i0] = c4_dv0[c4_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d6 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i2;\r\n  real_T c4_c_u[6];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_b_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T *c4_v;\r\n  real_T (*c4_vseq)[6];\r\n  real_T (*c4_rseq)[10];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i1 = 0; c4_i1 < 10; c4_i1++) {\r\n    c4_u[c4_i1] = (*c4_rseq)[c4_i1];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  c4_hoistedGlobal = *c4_v;\r\n  c4_b_u = c4_hoistedGlobal;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i2 = 0; c4_i2 < 6; c4_i2++) {\r\n    c4_c_u[c4_i2] = (*c4_vseq)[c4_i2];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_b_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_b_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv1[10];\r\n  int32_T c4_i3;\r\n  real_T c4_dv2[6];\r\n  int32_T c4_i4;\r\n  real_T *c4_v;\r\n  real_T (*c4_rseq)[10];\r\n  real_T (*c4_vseq)[6];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)), \"rseq\",\r\n                      c4_dv1);\r\n  for (c4_i3 = 0; c4_i3 < 10; c4_i3++) {\r\n    (*c4_rseq)[c4_i3] = c4_dv1[c4_i3];\r\n  }\r\n\r\n  *c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)),\r\n    \"v\");\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv2);\r\n  for (c4_i4 = 0; c4_i4 < 6; c4_i4++) {\r\n    (*c4_vseq)[c4_i4] = c4_dv2[c4_i4];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_j_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i5;\r\n  int32_T c4_i6;\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_hoistedGlobal;\r\n  int32_T c4_i9;\r\n  real_T c4_ref[2];\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff[2];\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[10];\r\n  real_T c4_vseq[6];\r\n  real_T c4_v;\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i12;\r\n  int32_T c4_i13;\r\n  int32_T c4_i14;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  int32_T c4_i15;\r\n  real_T c4_f_u[2];\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv3[10];\r\n  int32_T c4_i16;\r\n  real_T c4_dv4[6];\r\n  int32_T c4_i17;\r\n  int32_T c4_i18;\r\n  int32_T c4_i19;\r\n  real_T *c4_b_md;\r\n  real_T *c4_c_v;\r\n  real_T (*c4_c_rseq)[10];\r\n  real_T (*c4_c_vseq)[6];\r\n  real_T (*c4_b_ref)[2];\r\n  c4_c_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i5 = 0; c4_i5 < 10; c4_i5++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i5], 0U);\r\n  }\r\n\r\n  for (c4_i6 = 0; c4_i6 < 6; c4_i6++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i6], 1U);\r\n  }\r\n\r\n  for (c4_i7 = 0; c4_i7 < 2; c4_i7++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_b_ref)[c4_i7], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_c_v, 4U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  for (c4_i8 = 0; c4_i8 < 2; c4_i8++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff[c4_i8], 8U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_md;\r\n  for (c4_i9 = 0; c4_i9 < 2; c4_i9++) {\r\n    c4_ref[c4_i9] = (*c4_b_ref)[c4_i9];\r\n  }\r\n\r\n  c4_md = c4_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_c_yoff, 4U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_ref, 11U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  for (c4_i10 = 0; c4_i10 < 2; c4_i10++) {\r\n    c4_c_yoff[c4_i10] = 0.0;\r\n  }\r\n\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i11 = 0; c4_i11 < 6; c4_i11++) {\r\n    c4_DataType[c4_i11] = c4_cv0[c4_i11];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i12 = 0; c4_i12 < 10; c4_i12++) {\r\n    c4_rseq[c4_i12] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i13 = 0; c4_i13 < 6; c4_i13++) {\r\n    c4_vseq[c4_i13] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  c4_v = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  for (c4_i14 = 0; c4_i14 < 2; c4_i14++) {\r\n    c4_u[c4_i14] = c4_ref[c4_i14];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c4_i15 = 0; c4_i15 < 2; c4_i15++) {\r\n    c4_f_u[c4_i15] = 0.0;\r\n  }\r\n\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", c4_f_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv3);\r\n  for (c4_i16 = 0; c4_i16 < 10; c4_i16++) {\r\n    c4_rseq[c4_i16] = c4_dv3[c4_i16];\r\n  }\r\n\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv4);\r\n  for (c4_i17 = 0; c4_i17 < 6; c4_i17++) {\r\n    c4_vseq[c4_i17] = c4_dv4[c4_i17];\r\n  }\r\n\r\n  c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\");\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i18 = 0; c4_i18 < 10; c4_i18++) {\r\n    (*c4_c_rseq)[c4_i18] = c4_rseq[c4_i18];\r\n  }\r\n\r\n  for (c4_i19 = 0; c4_i19 < 6; c4_i19++) {\r\n    (*c4_c_vseq)[c4_i19] = c4_vseq[c4_i19];\r\n  }\r\n\r\n  *c4_c_v = c4_v;\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i20;\r\n  real_T c4_b_inData[6];\r\n  int32_T c4_i21;\r\n  real_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i20 = 0; c4_i20 < 6; c4_i20++) {\r\n    c4_b_inData[c4_i20] = (*(real_T (*)[6])c4_inData)[c4_i20];\r\n  }\r\n\r\n  for (c4_i21 = 0; c4_i21 < 6; c4_i21++) {\r\n    c4_u[c4_i21] = c4_b_inData[c4_i21];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[6];\r\n  int32_T c4_i22;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i22 = 0; c4_i22 < 6; c4_i22++) {\r\n    (*(real_T (*)[6])c4_outData)[c4_i22] = c4_y[c4_i22];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i23;\r\n  real_T c4_b_inData[10];\r\n  int32_T c4_i24;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i23 = 0; c4_i23 < 10; c4_i23++) {\r\n    c4_b_inData[c4_i23] = (*(real_T (*)[10])c4_inData)[c4_i23];\r\n  }\r\n\r\n  for (c4_i24 = 0; c4_i24 < 10; c4_i24++) {\r\n    c4_u[c4_i24] = c4_b_inData[c4_i24];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[10];\r\n  int32_T c4_i25;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i25 = 0; c4_i25 < 10; c4_i25++) {\r\n    (*(real_T (*)[10])c4_outData)[c4_i25] = c4_y[c4_i25];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i26;\r\n  real_T c4_b_inData[2];\r\n  int32_T c4_i27;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i26 = 0; c4_i26 < 2; c4_i26++) {\r\n    c4_b_inData[c4_i26] = (*(real_T (*)[2])c4_inData)[c4_i26];\r\n  }\r\n\r\n  for (c4_i27 = 0; c4_i27 < 2; c4_i27++) {\r\n    c4_u[c4_i27] = c4_b_inData[c4_i27];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i28;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i29;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i28 = 0; c4_i28 < 6; c4_i28++) {\r\n    c4_b_inData[c4_i28] = (*(char_T (*)[6])c4_inData)[c4_i28];\r\n  }\r\n\r\n  for (c4_i29 = 0; c4_i29 < 6; c4_i29++) {\r\n    c4_u[c4_i29] = c4_b_inData[c4_i29];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10])\r\n{\r\n  real_T c4_dv5[10];\r\n  int32_T c4_i30;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv5, 1, 0, 0U, 1, 0U, 1, 10);\r\n  for (c4_i30 = 0; c4_i30 < 10; c4_i30++) {\r\n    c4_y[c4_i30] = c4_dv5[c4_i30];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[6])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[6])\r\n{\r\n  real_T c4_dv6[6];\r\n  int32_T c4_i31;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv6, 1, 0, 0U, 1, 0U, 1, 6);\r\n  for (c4_i31 = 0; c4_i31 < 6; c4_i31++) {\r\n    c4_y[c4_i31] = c4_dv6[c4_i31];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier)\r\n{\r\n  real_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  return c4_y;\r\n}\r\n\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d7;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d7, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d7;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i32;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i32, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i32;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic void c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2])\r\n{\r\n  real_T c4_dv7[2];\r\n  int32_T c4_i33;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv7, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i33 = 0; c4_i33 < 2; c4_i33++) {\r\n    c4_y[c4_i33] = c4_dv7[c4_i33];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_yoff;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[2];\r\n  int32_T c4_i34;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_yoff = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_yoff), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_c_yoff);\r\n  for (c4_i34 = 0; c4_i34 < 2; c4_i34++) {\r\n    (*(real_T (*)[2])c4_outData)[c4_i34] = c4_y[c4_i34];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_k_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2060684023U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3607261543U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(4175904135U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1907083303U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"W9pU18Rzyx5XpPp6ECbqY\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)\r\n            c4_e_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_e_sf_marshallOut,(MexInFcnForType)c4_f_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_md;\r\n          real_T *c4_v;\r\n          real_T (*c4_rseq)[10];\r\n          real_T (*c4_vseq)[6];\r\n          real_T (*c4_ref)[2];\r\n          c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"xf8liFQGgsdDdPF7ystbhB\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(1010599357U));\r\n  ssSetChecksum1(S,(1840766416U));\r\n  ssSetChecksum2(S,(2527524482U));\r\n  ssSetChecksum3(S,(3455074465U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff[2];\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(245586160U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2675397657U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(2405336008U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2115083677U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"IWfv4yRSzPuXdHsJRcV3N\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"W9pU18Rzyx5XpPp6ECbqY\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"UZcJkDgeSZoOkVp9M5i6hE\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"xf8liFQGgsdDdPF7ystbhB\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"UZcJkDgeSZoOkVp9M5i6hE\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"xf8liFQGgsdDdPF7ystbhB\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_nonlinear_setoutdist\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_setoutdist/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpc_nonlinear_ss_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpc_nonlinear_ss_sfun.h\"\r\n#include \"mpc_nonlinear_ss_sfun_debug_macros.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpc_nonlinear_ssMachineNumber_;\r\nreal_T _sfTime_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpc_nonlinear_ss_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpc_nonlinear_ss_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpc_nonlinear_ss_method_dispatcher(SimStruct *simstructPtr,\r\n  unsigned int chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_ss_process_check_sum_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>1 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"machine\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3384101062U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3261109795U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3479061528U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(3061899716U);\r\n    } else if (!strcmp(commandName,\"exportedFcn\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0U);\r\n    } else if (!strcmp(commandName,\"makefile\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(811215406U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2252609922U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1649206936U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(311912670U);\r\n    } else if (nrhs==3 && !strcmp(commandName,\"chart\")) {\r\n      unsigned int chartFileNumber;\r\n      chartFileNumber = (unsigned int)mxGetScalar(prhs[2]);\r\n      switch (chartFileNumber) {\r\n       default:\r\n        ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n        ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n      }\r\n    } else if (!strcmp(commandName,\"target\")) {\r\n      ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(3031367619U);\r\n      ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(4001028638U);\r\n      ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3978939492U);\r\n      ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(838979348U);\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(4136651476U);\r\n    ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(1159628840U);\r\n    ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(3821250505U);\r\n    ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(668834363U);\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_ss_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_ss_get_eml_resolved_functions_info( int nlhs,\r\n  mxArray * plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_ss_third_party_uses_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpc_nonlinear_ss_updateBuildInfo_args_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpc_nonlinear_ss_debug_initialize(struct SfDebugInstanceStruct*\r\n  debugInstance)\r\n{\r\n  _mpc_nonlinear_ssMachineNumber_ = sf_debug_initialize_machine(debugInstance,\r\n    \"mpc_nonlinear_ss\",\"sfun\",0,0,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,\r\n    _mpc_nonlinear_ssMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,\r\n    _mpc_nonlinear_ssMachineNumber_,0);\r\n}\r\n\r\nvoid mpc_nonlinear_ss_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpc_nonlinear_ss_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\r\n      \"mpc_nonlinear_ss\", \"mpc_nonlinear_ss\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpc_nonlinear_ss_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun.h",
    "content": "#ifndef __mpc_nonlinear_ss_sfun_h__\r\n#define __mpc_nonlinear_ss_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpc_nonlinear_ssMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpc_nonlinear_ss_initializer(void);\r\nextern void mpc_nonlinear_ss_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpc_nonlinear_ss_optimization_info(void);\r\nextern void unload_mpc_nonlinear_ss_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpc_nonlinear_ss\r\nTARGET      = sfun\r\nCHART_SRCS \t= \r\nMACHINE_SRC\t= mpc_nonlinear_ss_sfun.c\r\nMACHINE_REG = mpc_nonlinear_ss_sfun_registry.c\r\nMAKEFILE    = mpc_nonlinear_ss_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpc_nonlinear_ss_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \"E:\\2019-˼ʻģԤ\\3\\chapter3 \\slprj\\_sfprj\\mpc_nonlinear_ss\\mpclib\\sfun\\src\\mpclib_sfun.lib\" \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\nMEX_FILE_NAME_WO_EXT = $(MACHINE)_$(TARGET)\r\nMEX_FILE_NAME = $(MEX_FILE_NAME_WO_EXT).mexw64\r\nMEX_FILE_CSF =\r\nall : $(MEX_FILE_NAME) $(MEX_FILE_CSF)\r\n\r\nTMWLIB = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmx.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmat.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libfixedpoint.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libut.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwmathutil.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libemlrt.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\lib\\win64\\libippmwipt.lib\" \r\n\r\n$(MEX_FILE_NAME) : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n @echo ### Linking ...\r\n $(LD) $(LDFLAGS) /OUT:$(MEX_FILE_NAME) /map:\"$(MEX_FILE_NAME_WO_EXT).map\"\\\r\n  $(USER_LIBS) $(SFCLIB) $(AUX_LNK_OBJS)\\\r\n  $(TMWLIB) $(LINK_MACHINE_LIBS) $(DSP_LIBS) $(BLAS_LIBS) $(THIRD_PARTY_LIBS)\\\r\n  @$(OBJLIST_FILE)\r\n     mt -outputresource:\"$(MEX_FILE_NAME);2\" -manifest \"$(MEX_FILE_NAME).manifest\"\r\n\t@echo ### Created $@\r\n\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun.mexw64.manifest",
    "content": "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\r\n<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\r\n  <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n    <security>\r\n      <requestedPrivileges>\r\n        <requestedExecutionLevel level='asInvoker' uiAccess='false' />\r\n      </requestedPrivileges>\r\n    </security>\r\n  </trustInfo>\r\n</assembly>\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun.mol",
    "content": "mpc_nonlinear_ss_sfun.obj\r\nmpc_nonlinear_ss_sfun_registry.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpc_nonlinear_ssMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpc_nonlinear_ssMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpc_nonlinear_ssMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/mpc_nonlinear_ss_sfun_registry.c",
    "content": "#include \"mpc_nonlinear_ss_sfun.h\"\r\n#include \"sfcdebug.h\"\r\n\r\nstruct SfDebugInstanceStruct;\r\nstruct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct = NULL;\r\n\r\n#define PROCESS_MEX_SFUNCTION_CMD_LINE_CALL\r\n\r\nunsigned int sf_process_check_sum_call( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_ss_process_check_sum_call( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  if (sf_mpc_nonlinear_ss_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mpclib_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_autoinheritance_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_ss_autoinheritance_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_ss\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_ss_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_autoinheritance_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_third_party_uses_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_ss_third_party_uses_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[],\r\n    int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_ss\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_ss_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_third_party_uses_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_updateBuildInfo_args_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_ss_updateBuildInfo_args_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray *\r\n    plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 4) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_ss\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpc_nonlinear_ss_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[3] = { NULL, NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    newRhs[2] = prhs[3];\r\n    return sf_mpclib_updateBuildInfo_args_info(nlhs,plhs,3,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_process_get_eml_resolved_functions_info_call( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n  extern unsigned int sf_mpc_nonlinear_ss_get_eml_resolved_functions_info( int\r\n    nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  extern unsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs,\r\n    mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\n  char commandName[64];\r\n  char machineName[128];\r\n  if (nrhs < 3) {\r\n    return 0;\r\n  }\r\n\r\n  if (!mxIsChar(prhs[0]) || !mxIsChar(prhs[1]))\r\n    return 0;\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n  mxGetString(prhs[1], machineName,sizeof(machineName)/sizeof(char));\r\n  machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(machineName, \"mpc_nonlinear_ss\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpc_nonlinear_ss_get_eml_resolved_functions_info(nlhs,plhs,2,\r\n      newRhs);\r\n  }\r\n\r\n  if (strcmp(machineName, \"mpclib\") == 0) {\r\n    const mxArray *newRhs[2] = { NULL, NULL };\r\n\r\n    newRhs[0] = prhs[0];\r\n    newRhs[1] = prhs[2];\r\n    return sf_mpclib_get_eml_resolved_functions_info(nlhs,plhs,2,newRhs);\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mex_unlock_call( int nlhs, mxArray * plhs[], int nrhs, const\r\n  mxArray * prhs[] )\r\n{\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_mex_unlock\"))\r\n    return 0;\r\n  while (mexIsLocked()) {\r\n    mexUnlock();\r\n  }\r\n\r\n  return(1);\r\n}\r\n\r\nextern unsigned int sf_debug_api(struct SfDebugInstanceStruct* debugInstance,\r\n  int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[] );\r\nstatic unsigned int sf_debug_api_wrapper( int nlhs, mxArray * plhs[], int nrhs,\r\n  const mxArray * prhs[] )\r\n{\r\n  return sf_debug_api(sfGlobalDebugInstanceStruct, nlhs, plhs, nrhs, prhs);\r\n}\r\n\r\nstatic unsigned int ProcessMexSfunctionCmdLineCall(int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[])\r\n{\r\n  if (sf_debug_api_wrapper(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_check_sum_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_mex_unlock_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_autoinheritance_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_third_party_uses_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_updateBuildInfo_args_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  if (sf_process_get_eml_resolved_functions_info_call(nlhs,plhs,nrhs,prhs))\r\n    return 1;\r\n  mexErrMsgTxt(\"Unsuccessful command.\");\r\n  return 0;\r\n}\r\n\r\nstatic unsigned int sfGlobalMdlStartCallCounts = 0;\r\nunsigned int sf_machine_global_initializer_called(void)\r\n{\r\n  return(sfGlobalMdlStartCallCounts > 0);\r\n}\r\n\r\nextern unsigned int sf_mpc_nonlinear_ss_method_dispatcher(SimStruct *S, unsigned\r\n  int chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nextern unsigned int sf_mpclib_method_dispatcher(SimStruct *S, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data);\r\nunsigned int sf_machine_global_method_dispatcher(SimStruct *simstructPtr, const\r\n  char *machineName, unsigned int chartFileNumber, const char* specsCksum, int_T\r\n  method, void *data)\r\n{\r\n  if (!strcmp(machineName,\"mpc_nonlinear_ss\")) {\r\n    return(sf_mpc_nonlinear_ss_method_dispatcher(simstructPtr,chartFileNumber,\r\n            specsCksum,method,data));\r\n  }\r\n\r\n  if (!strcmp(machineName,\"mpclib\")) {\r\n    return(sf_mpclib_method_dispatcher(simstructPtr,chartFileNumber,specsCksum,\r\n            method,data));\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nextern void mpc_nonlinear_ss_terminator(void);\r\nextern void mpclib_terminator(void);\r\nvoid sf_machine_global_terminator(void)\r\n{\r\n  sfGlobalMdlStartCallCounts--;\r\n  if (sfGlobalMdlStartCallCounts == 0) {\r\n    mpc_nonlinear_ss_terminator();\r\n    mpclib_terminator();\r\n    sf_debug_terminate(sfGlobalDebugInstanceStruct);\r\n    sfGlobalDebugInstanceStruct = NULL;\r\n  }\r\n\r\n  return;\r\n}\r\n\r\nextern void mpc_nonlinear_ss_initializer(void);\r\nextern void mpclib_initializer(void);\r\nextern void mpc_nonlinear_ss_register_exported_symbols(SimStruct* S);\r\nextern void mpclib_register_exported_symbols(SimStruct* S);\r\nextern void mpc_nonlinear_ss_debug_initialize(struct SfDebugInstanceStruct*);\r\nextern void mpclib_debug_initialize(struct SfDebugInstanceStruct*);\r\nvoid sf_register_machine_exported_symbols(SimStruct* S)\r\n{\r\n  mpc_nonlinear_ss_register_exported_symbols(S);\r\n  mpclib_register_exported_symbols(S);\r\n}\r\n\r\nbool callCustomFcn(char initFlag)\r\n{\r\n  return false;\r\n}\r\n\r\nvoid sf_machine_global_initializer(SimStruct* S)\r\n{\r\n  bool simModeIsRTWGen = sim_mode_is_rtw_gen(S);\r\n  sfGlobalMdlStartCallCounts++;\r\n  if (sfGlobalMdlStartCallCounts == 1) {\r\n    if (simModeIsRTWGen) {\r\n      sf_register_machine_exported_symbols(S);\r\n    }\r\n\r\n    sfGlobalDebugInstanceStruct = sf_debug_create_debug_instance_struct();\r\n    if (!simModeIsRTWGen) {\r\n      mpc_nonlinear_ss_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpc_nonlinear_ss_initializer();\r\n    if (!simModeIsRTWGen) {\r\n      mpclib_debug_initialize(sfGlobalDebugInstanceStruct);\r\n    }\r\n\r\n    mpclib_initializer();\r\n  }\r\n\r\n  return;\r\n}\r\n\r\n#define PROCESS_MEX_SFUNCTION_EVERY_CALL\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[]);\r\n\r\n#include \"simulink.c\"                  /* MEX-file interface mechanism */\r\n\r\nstatic void sf_machine_load_sfunction_ptrs(SimStruct *S)\r\n{\r\n  ssSetmdlInitializeSampleTimes(S,__mdlInitializeSampleTimes);\r\n  ssSetmdlInitializeConditions(S,__mdlInitializeConditions);\r\n  ssSetmdlOutputs(S,__mdlOutputs);\r\n  ssSetmdlTerminate(S,__mdlTerminate);\r\n  ssSetmdlRTW(S,__mdlRTW);\r\n  ssSetmdlSetWorkWidths(S,__mdlSetWorkWidths);\r\n\r\n#if defined(MDL_HASSIMULATIONCONTEXTIO)\r\n\r\n  ssSetmdlSimulationContextIO(S,__mdlSimulationContextIO);\r\n\r\n#endif\r\n\r\n#if defined(MDL_START)\r\n\r\n  ssSetmdlStart(S,__mdlStart);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_ENABLE)\r\n\r\n  ssSetRTWGeneratedEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(RTW_GENERATED_DISABLE)\r\n\r\n  ssSetRTWGeneratedDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ENABLE)\r\n\r\n  ssSetmdlEnable(S,__mdlEnable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DISABLE)\r\n\r\n  ssSetmdlDisable(S,__mdlDisable);\r\n\r\n#endif\r\n\r\n#if defined(MDL_SIM_STATUS_CHANGE)\r\n\r\n  ssSetmdlSimStatusChange(S,__mdlSimStatusChange);\r\n\r\n#endif\r\n\r\n#if defined(MDL_EXT_MODE_EXEC)\r\n\r\n  ssSetmdlExtModeExec(S,__mdlExtModeExec);\r\n\r\n#endif\r\n\r\n#if defined(MDL_UPDATE)\r\n\r\n  ssSetmdlUpdate(S,__mdlUpdate);\r\n\r\n#endif\r\n\r\n#if defined(MDL_PROCESS_PARAMETERS)\r\n\r\n  ssSetmdlProcessParameters(S,__mdlProcessParameters);\r\n\r\n#endif\r\n\r\n#if defined(MDL_ZERO_CROSSINGS)\r\n\r\n  ssSetmdlZeroCrossings(S,__mdlZeroCrossings);\r\n\r\n#endif\r\n\r\n#if defined(MDL_DERIVATIVES)\r\n\r\n  ssSetmdlDerivatives(S,__mdlDerivatives);\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int ProcessMexSfunctionEveryCall(int_T nlhs, mxArray *plhs[], int_T\r\n  nrhs, const mxArray *prhs[])\r\n{\r\n  if (nlhs < 0) {\r\n    SimStruct *S = (SimStruct *)plhs[_LHS_SS];\r\n    int_T flag = (int_T)(*(real_T*)mxGetPr(prhs[_RHS_FLAG]));\r\n    if (flag == SS_CALL_MDL_SET_WORK_WIDTHS) {\r\n      sf_machine_load_sfunction_ptrs(S);\r\n    }\r\n  }\r\n\r\n  return 0;\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/_self/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/c3_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c3_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c3_b_p                         (5.0)\r\n#define c3_b_nu                        (3.0)\r\n#define c3_b_isQP                      (FALSE)\r\n#define c3_b_ny                        (2.0)\r\n#define c3_b_degrees                   (6.0)\r\n#define c3_b_Mlim                      (0.0)\r\n#define c3_b_Mv                        (0.0)\r\n#define c3_b_maxiter                   (120.0)\r\n#define c3_b_nxQP                      (11.0)\r\n#define c3_b_openloopflag              (FALSE)\r\n#define c3_b_lims_inport               (0.0)\r\n#define c3_b_no_umin                   (1.0)\r\n#define c3_b_no_umax                   (1.0)\r\n#define c3_b_no_ymin                   (1.0)\r\n#define c3_b_no_ymax                   (1.0)\r\n#define c3_b_switch_inport             (0.0)\r\n#define c3_b_no_switch                 (1.0)\r\n#define c3_b_enable_value              (0.0)\r\n#define c3_b_return_cost               (0.0)\r\n#define c3_b_return_sequence           (0.0)\r\n#define c3_b_no_ywt                    (1.0)\r\n#define c3_b_no_duwt                   (1.0)\r\n#define c3_b_no_rhoeps                 (1.0)\r\n#define c3_b_Wy                        (0.0)\r\n#define c3_b_Wdu                       (0.0)\r\n#define c3_b_Jm                        (0.0)\r\n#define c3_b_SuJm                      (0.0)\r\n#define c3_b_I2JmWuI2Jm                (0.0)\r\n#define c3_b_Su1                       (0.0)\r\n#define c3_b_I1WuI2Jm                  (0.0)\r\n#define c3_b_Sx                        (0.0)\r\n#define c3_b_Hv                        (0.0)\r\n#define c3_b_Wu                        (0.0)\r\n#define c3_b_I1                        (0.0)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c3_debug_family_names[71] = { \"DataType\", \"isQP\", \"nu\", \"ny\",\r\n  \"degrees\", \"Hinv\", \"Kx\", \"Ku1\", \"Kut\", \"Kr\", \"Kv\", \"Mlim\", \"Mx\", \"Mu1\", \"Mv\",\r\n  \"z_degrees\", \"utarget\", \"p\", \"uoff\", \"yoff\", \"maxiter\", \"nxQP\", \"openloopflag\",\r\n  \"lims_inport\", \"no_umin\", \"no_umax\", \"no_ymin\", \"no_ymax\", \"switch_inport\",\r\n  \"no_switch\", \"enable_value\", \"return_cost\", \"H\", \"return_sequence\",\r\n  \"blocking_moves\", \"Linv\", \"Ac\", \"no_ywt\", \"no_duwt\", \"no_rhoeps\", \"Wy\", \"Wdu\",\r\n  \"Jm\", \"SuJm\", \"I2JmWuI2Jm\", \"Su1\", \"I1WuI2Jm\", \"Sx\", \"Hv\", \"Wu\", \"I1\",\r\n  \"nargin\", \"nargout\", \"rseq\", \"vseq\", \"x\", \"old_u\", \"iA\", \"umin\", \"umax\",\r\n  \"ymin\", \"ymax\", \"switch_in\", \"ywt\", \"duwt\", \"rhoeps\", \"u\", \"cost\", \"useq\",\r\n  \"status\", \"iAout\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st);\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber);\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData);\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic const mxArray *c3_t_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic void c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c3_u, const char_T *c3_identifier, real_T c3_y[3]);\r\nstatic void c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic real_T c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_cost, const char_T *c3_identifier);\r\nstatic real_T c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[15]);\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15]);\r\nstatic void c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[7]);\r\nstatic void c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[7]);\r\nstatic const mxArray *c3_u_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData);\r\nstatic int32_T c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic boolean_T c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[36]);\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[66]);\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18]);\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[90]);\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60]);\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[11]);\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3]);\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6]);\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15]);\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[2]);\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[5]);\r\nstatic void c3_q_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic void c3_v_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6]);\r\nstatic void c3_r_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData);\r\nstatic uint8_T c3_w_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier);\r\nstatic uint8_T c3_x_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId);\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c3_is_active_c3_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_d0;\r\n  real_T c3_d1;\r\n  real_T c3_d2;\r\n  real_T c3_d3;\r\n  real_T c3_dv0[36];\r\n  int32_T c3_i0;\r\n  real_T c3_dv1[66];\r\n  int32_T c3_i1;\r\n  real_T c3_dv2[18];\r\n  int32_T c3_i2;\r\n  real_T c3_dv3[90];\r\n  int32_T c3_i3;\r\n  real_T c3_dv4[60];\r\n  int32_T c3_i4;\r\n  real_T c3_dv5[36];\r\n  int32_T c3_i5;\r\n  real_T c3_d4;\r\n  real_T c3_dv6[11];\r\n  int32_T c3_i6;\r\n  real_T c3_dv7[3];\r\n  int32_T c3_i7;\r\n  real_T c3_d5;\r\n  real_T c3_dv8[6];\r\n  int32_T c3_i8;\r\n  real_T c3_dv9[15];\r\n  int32_T c3_i9;\r\n  real_T c3_d6;\r\n  real_T c3_dv10[3];\r\n  int32_T c3_i10;\r\n  real_T c3_dv11[2];\r\n  int32_T c3_i11;\r\n  real_T c3_d7;\r\n  real_T c3_d8;\r\n  real_T c3_d9;\r\n  real_T c3_d10;\r\n  real_T c3_d11;\r\n  real_T c3_d12;\r\n  real_T c3_d13;\r\n  real_T c3_d14;\r\n  real_T c3_d15;\r\n  real_T c3_d16;\r\n  real_T c3_d17;\r\n  real_T c3_d18;\r\n  real_T c3_dv12[36];\r\n  int32_T c3_i12;\r\n  real_T c3_d19;\r\n  real_T c3_dv13[5];\r\n  int32_T c3_i13;\r\n  real_T c3_dv14[36];\r\n  int32_T c3_i14;\r\n  real_T c3_dv15[6];\r\n  int32_T c3_i15;\r\n  real_T c3_d20;\r\n  real_T c3_d21;\r\n  real_T c3_d22;\r\n  real_T c3_d23;\r\n  real_T c3_d24;\r\n  real_T c3_d25;\r\n  real_T c3_d26;\r\n  real_T c3_d27;\r\n  real_T c3_d28;\r\n  real_T c3_d29;\r\n  real_T c3_d30;\r\n  real_T c3_d31;\r\n  real_T c3_d32;\r\n  real_T c3_d33;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'isQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 27, 0), &c3_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_isQP = (c3_d0 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nu\", sf_mex_get_sfun_param(chartInstance->S, 38, 0),\r\n                      &c3_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nu = c3_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 40, 0),\r\n                      &c3_d2, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_ny = c3_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"degrees\", sf_mex_get_sfun_param(chartInstance->S, 25, 0),\r\n                      &c3_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_degrees = c3_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hinv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hinv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      c3_dv0, 0, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i0 = 0; c3_i0 < 36; c3_i0++) {\r\n    chartInstance->c3_Hinv[c3_i0] = c3_dv0[c3_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kx\", sf_mex_get_sfun_param(chartInstance->S, 12, 0),\r\n                      c3_dv1, 0, 0, 0U, 1, 0U, 2, 11, 6);\r\n  for (c3_i1 = 0; c3_i1 < 66; c3_i1++) {\r\n    chartInstance->c3_Kx[c3_i1] = c3_dv1[c3_i1];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ku1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ku1\", sf_mex_get_sfun_param(chartInstance->S, 9, 0),\r\n                      c3_dv2, 0, 0, 0U, 1, 0U, 2, 3, 6);\r\n  for (c3_i2 = 0; c3_i2 < 18; c3_i2++) {\r\n    chartInstance->c3_Ku1[c3_i2] = c3_dv2[c3_i2];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kut' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kut\", sf_mex_get_sfun_param(chartInstance->S, 10, 0),\r\n                      c3_dv3, 0, 0, 0U, 1, 0U, 2, 15, 6);\r\n  for (c3_i3 = 0; c3_i3 < 90; c3_i3++) {\r\n    chartInstance->c3_Kut[c3_i3] = c3_dv3[c3_i3];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kr' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kr\", sf_mex_get_sfun_param(chartInstance->S, 8, 0),\r\n                      c3_dv4, 0, 0, 0U, 1, 0U, 2, 10, 6);\r\n  for (c3_i4 = 0; c3_i4 < 60; c3_i4++) {\r\n    chartInstance->c3_Kr[c3_i4] = c3_dv4[c3_i4];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Kv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Kv\", sf_mex_get_sfun_param(chartInstance->S, 11, 0),\r\n                      c3_dv5, 0, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i5 = 0; c3_i5 < 36; c3_i5++) {\r\n    chartInstance->c3_Kv[c3_i5] = c3_dv5[c3_i5];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mlim' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mlim\", sf_mex_get_sfun_param(chartInstance->S, 14, 0),\r\n                      &c3_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Mlim = c3_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mx\", sf_mex_get_sfun_param(chartInstance->S, 17, 0),\r\n                      c3_dv6, 0, 0, 0U, 1, 0U, 2, 1, 11);\r\n  for (c3_i6 = 0; c3_i6 < 11; c3_i6++) {\r\n    chartInstance->c3_Mx[c3_i6] = c3_dv6[c3_i6];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mu1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mu1\", sf_mex_get_sfun_param(chartInstance->S, 15, 0),\r\n                      c3_dv7, 0, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i7 = 0; c3_i7 < 3; c3_i7++) {\r\n    chartInstance->c3_Mu1[c3_i7] = c3_dv7[c3_i7];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Mv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Mv\", sf_mex_get_sfun_param(chartInstance->S, 16, 0),\r\n                      &c3_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Mv = c3_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'z_degrees' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"z_degrees\", sf_mex_get_sfun_param(chartInstance->S, 49, 0),\r\n                      c3_dv8, 0, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i8 = 0; c3_i8 < 6; c3_i8++) {\r\n    chartInstance->c3_z_degrees[c3_i8] = c3_dv8[c3_i8];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'utarget' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"utarget\", sf_mex_get_sfun_param(chartInstance->S, 47, 0),\r\n                      c3_dv9, 0, 0, 0U, 1, 0U, 1, 15);\r\n  for (c3_i9 = 0; c3_i9 < 15; c3_i9++) {\r\n    chartInstance->c3_utarget[c3_i9] = c3_dv9[c3_i9];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 42, 0),\r\n                      &c3_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_p = c3_d6;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'uoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"uoff\", sf_mex_get_sfun_param(chartInstance->S, 46, 0),\r\n                      c3_dv10, 0, 0, 0U, 1, 0U, 1, 3);\r\n  for (c3_i10 = 0; c3_i10 < 3; c3_i10++) {\r\n    chartInstance->c3_uoff[c3_i10] = c3_dv10[c3_i10];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 48, 0),\r\n                      c3_dv11, 0, 0, 0U, 1, 0U, 1, 2);\r\n  for (c3_i11 = 0; c3_i11 < 2; c3_i11++) {\r\n    chartInstance->c3_yoff[c3_i11] = c3_dv11[c3_i11];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'maxiter' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"maxiter\", sf_mex_get_sfun_param(chartInstance->S, 29, 0),\r\n                      &c3_d7, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_maxiter = c3_d7;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nxQP' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nxQP\", sf_mex_get_sfun_param(chartInstance->S, 39, 0),\r\n                      &c3_d8, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_nxQP = c3_d8;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 41, 0), &c3_d9, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_openloopflag = (c3_d9 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'lims_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"lims_inport\", sf_mex_get_sfun_param(chartInstance->S, 28,\r\n    0), &c3_d10, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_lims_inport = c3_d10;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umin\", sf_mex_get_sfun_param(chartInstance->S, 34, 0),\r\n                      &c3_d11, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umin = c3_d11;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_umax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_umax\", sf_mex_get_sfun_param(chartInstance->S, 33, 0),\r\n                      &c3_d12, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_umax = c3_d12;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymin' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymin\", sf_mex_get_sfun_param(chartInstance->S, 36, 0),\r\n                      &c3_d13, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymin = c3_d13;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ymax' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ymax\", sf_mex_get_sfun_param(chartInstance->S, 35, 0),\r\n                      &c3_d14, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ymax = c3_d14;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'switch_inport' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"switch_inport\", sf_mex_get_sfun_param(chartInstance->S,\r\n    45, 0), &c3_d15, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_switch_inport = c3_d15;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_switch' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_switch\", sf_mex_get_sfun_param(chartInstance->S, 32, 0),\r\n                      &c3_d16, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_switch = c3_d16;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'enable_value' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"enable_value\", sf_mex_get_sfun_param(chartInstance->S, 26,\r\n    0), &c3_d17, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_enable_value = c3_d17;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_cost' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_cost\", sf_mex_get_sfun_param(chartInstance->S, 43,\r\n    0), &c3_d18, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_cost = c3_d18;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'H' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"H\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      c3_dv12, 0, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i12 = 0; c3_i12 < 36; c3_i12++) {\r\n    chartInstance->c3_H[c3_i12] = c3_dv12[c3_i12];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'return_sequence' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"return_sequence\", sf_mex_get_sfun_param(chartInstance->S,\r\n    44, 0), &c3_d19, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_return_sequence = c3_d19;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'blocking_moves' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"blocking_moves\", sf_mex_get_sfun_param(chartInstance->S,\r\n    24, 0), c3_dv13, 0, 0, 0U, 1, 0U, 2, 1, 5);\r\n  for (c3_i13 = 0; c3_i13 < 5; c3_i13++) {\r\n    chartInstance->c3_blocking_moves[c3_i13] = c3_dv13[c3_i13];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Linv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Linv\", sf_mex_get_sfun_param(chartInstance->S, 13, 0),\r\n                      c3_dv14, 0, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i14 = 0; c3_i14 < 36; c3_i14++) {\r\n    chartInstance->c3_Linv[c3_i14] = c3_dv14[c3_i14];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Ac' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Ac\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      c3_dv15, 0, 0, 0U, 1, 0U, 2, 1, 6);\r\n  for (c3_i15 = 0; c3_i15 < 6; c3_i15++) {\r\n    chartInstance->c3_Ac[c3_i15] = c3_dv15[c3_i15];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ywt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ywt\", sf_mex_get_sfun_param(chartInstance->S, 37, 0),\r\n                      &c3_d20, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_ywt = c3_d20;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_duwt' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_duwt\", sf_mex_get_sfun_param(chartInstance->S, 30, 0),\r\n                      &c3_d21, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_duwt = c3_d21;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_rhoeps' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_rhoeps\", sf_mex_get_sfun_param(chartInstance->S, 31, 0),\r\n                      &c3_d22, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_no_rhoeps = c3_d22;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wy' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wy\", sf_mex_get_sfun_param(chartInstance->S, 23, 0),\r\n                      &c3_d23, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wy = c3_d23;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wdu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wdu\", sf_mex_get_sfun_param(chartInstance->S, 21, 0),\r\n                      &c3_d24, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wdu = c3_d24;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Jm\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      &c3_d25, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Jm = c3_d25;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'SuJm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"SuJm\", sf_mex_get_sfun_param(chartInstance->S, 19, 0),\r\n                      &c3_d26, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_SuJm = c3_d26;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I2JmWuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I2JmWuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c3_d27, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I2JmWuI2Jm = c3_d27;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Su1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Su1\", sf_mex_get_sfun_param(chartInstance->S, 18, 0),\r\n                      &c3_d28, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Su1 = c3_d28;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1WuI2Jm' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1WuI2Jm\", sf_mex_get_sfun_param(chartInstance->S, 5, 0),\r\n                      &c3_d29, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1WuI2Jm = c3_d29;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Sx' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Sx\", sf_mex_get_sfun_param(chartInstance->S, 20, 0),\r\n                      &c3_d30, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Sx = c3_d30;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Hv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Hv\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c3_d31, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Hv = c3_d31;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'Wu' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"Wu\", sf_mex_get_sfun_param(chartInstance->S, 22, 0),\r\n                      &c3_d32, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_Wu = c3_d32;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'I1' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"I1\", sf_mex_get_sfun_param(chartInstance->S, 4, 0),\r\n                      &c3_d33, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c3_I1 = c3_d33;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c3_update_debugger_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c3_st;\r\n  const mxArray *c3_y = NULL;\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_u;\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i16;\r\n  boolean_T c3_b_u[7];\r\n  const mxArray *c3_c_y = NULL;\r\n  real_T c3_b_hoistedGlobal;\r\n  real_T c3_c_u;\r\n  const mxArray *c3_d_y = NULL;\r\n  int32_T c3_i17;\r\n  real_T c3_d_u[3];\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i18;\r\n  real_T c3_e_u[15];\r\n  const mxArray *c3_f_y = NULL;\r\n  uint8_T c3_c_hoistedGlobal;\r\n  uint8_T c3_f_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  real_T (*c3_useq)[15];\r\n  real_T (*c3_g_u)[3];\r\n  boolean_T (*c3_iAout)[7];\r\n  c3_iAout = (boolean_T (*)[7])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_g_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_st = NULL;\r\n  c3_st = NULL;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_createcellarray(6), FALSE);\r\n  c3_hoistedGlobal = *c3_cost;\r\n  c3_u = c3_hoistedGlobal;\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 0, c3_b_y);\r\n  for (c3_i16 = 0; c3_i16 < 7; c3_i16++) {\r\n    c3_b_u[c3_i16] = (*c3_iAout)[c3_i16];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_b_u, 11, 0U, 1U, 0U, 1, 7), FALSE);\r\n  sf_mex_setcell(c3_y, 1, c3_c_y);\r\n  c3_b_hoistedGlobal = *c3_status;\r\n  c3_c_u = c3_b_hoistedGlobal;\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", &c3_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 2, c3_d_y);\r\n  for (c3_i17 = 0; c3_i17 < 3; c3_i17++) {\r\n    c3_d_u[c3_i17] = (*c3_g_u)[c3_i17];\r\n  }\r\n\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", c3_d_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  sf_mex_setcell(c3_y, 3, c3_e_y);\r\n  for (c3_i18 = 0; c3_i18 < 15; c3_i18++) {\r\n    c3_e_u[c3_i18] = (*c3_useq)[c3_i18];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 2, 5, 3),\r\n                FALSE);\r\n  sf_mex_setcell(c3_y, 4, c3_f_y);\r\n  c3_c_hoistedGlobal = chartInstance->c3_is_active_c3_mpclib;\r\n  c3_f_u = c3_c_hoistedGlobal;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_f_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c3_y, 5, c3_g_y);\r\n  sf_mex_assign(&c3_st, c3_y, FALSE);\r\n  return c3_st;\r\n}\r\n\r\nstatic void set_sim_state_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_st)\r\n{\r\n  const mxArray *c3_u;\r\n  boolean_T c3_bv0[7];\r\n  int32_T c3_i19;\r\n  real_T c3_dv16[3];\r\n  int32_T c3_i20;\r\n  real_T c3_dv17[15];\r\n  int32_T c3_i21;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[7];\r\n  real_T (*c3_b_u)[3];\r\n  real_T (*c3_useq)[15];\r\n  c3_iAout = (boolean_T (*)[7])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_b_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c3_doneDoubleBufferReInit = TRUE;\r\n  c3_u = sf_mex_dup(c3_st);\r\n  *c3_cost = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u,\r\n    0)), \"cost\");\r\n  c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 1)),\r\n                        \"iAout\", c3_bv0);\r\n  for (c3_i19 = 0; c3_i19 < 7; c3_i19++) {\r\n    (*c3_iAout)[c3_i19] = c3_bv0[c3_i19];\r\n  }\r\n\r\n  *c3_status = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell\r\n    (c3_u, 2)), \"status\");\r\n  c3_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 3)), \"u\",\r\n                      c3_dv16);\r\n  for (c3_i20 = 0; c3_i20 < 3; c3_i20++) {\r\n    (*c3_b_u)[c3_i20] = c3_dv16[c3_i20];\r\n  }\r\n\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c3_u, 4)),\r\n                        \"useq\", c3_dv17);\r\n  for (c3_i21 = 0; c3_i21 < 15; c3_i21++) {\r\n    (*c3_useq)[c3_i21] = c3_dv17[c3_i21];\r\n  }\r\n\r\n  chartInstance->c3_is_active_c3_mpclib = c3_w_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c3_u, 5)), \"is_active_c3_mpclib\");\r\n  sf_mex_destroy(&c3_u);\r\n  c3_update_debugger_state_c3_mpclib(chartInstance);\r\n  sf_mex_destroy(&c3_st);\r\n}\r\n\r\nstatic void finalize_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c3_i22;\r\n  int32_T c3_i23;\r\n  int32_T c3_i24;\r\n  int32_T c3_i25;\r\n  int32_T c3_i26;\r\n  int32_T c3_i27;\r\n  int32_T c3_i28;\r\n  int32_T c3_i29;\r\n  int32_T c3_i30;\r\n  int32_T c3_i31;\r\n  int32_T c3_i32;\r\n  int32_T c3_i33;\r\n  int32_T c3_i34;\r\n  int32_T c3_i35;\r\n  int32_T c3_i36;\r\n  int32_T c3_i37;\r\n  int32_T c3_i38;\r\n  int32_T c3_i39;\r\n  int32_T c3_i40;\r\n  int32_T c3_i41;\r\n  int32_T c3_i42;\r\n  int32_T c3_i43;\r\n  int32_T c3_i44;\r\n  int32_T c3_i45;\r\n  int32_T c3_i46;\r\n  int32_T c3_i47;\r\n  int32_T c3_i48;\r\n  int32_T c3_i49;\r\n  int32_T c3_i50;\r\n  int32_T c3_i51;\r\n  real_T *c3_switch_in;\r\n  real_T *c3_rhoeps;\r\n  real_T *c3_cost;\r\n  real_T *c3_status;\r\n  boolean_T (*c3_iAout)[7];\r\n  real_T (*c3_useq)[15];\r\n  real_T (*c3_u)[3];\r\n  real_T (*c3_duwt)[3];\r\n  real_T (*c3_ywt)[2];\r\n  real_T (*c3_ymax)[2];\r\n  real_T (*c3_ymin)[2];\r\n  real_T (*c3_umax)[3];\r\n  real_T (*c3_umin)[3];\r\n  boolean_T (*c3_iA)[7];\r\n  real_T (*c3_old_u)[3];\r\n  real_T (*c3_x)[11];\r\n  real_T (*c3_vseq)[6];\r\n  real_T (*c3_rseq)[10];\r\n  c3_iAout = (boolean_T (*)[7])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_iA = (boolean_T (*)[7])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_x = (real_T (*)[11])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  for (c3_i22 = 0; c3_i22 < 10; c3_i22++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_rseq)[c3_i22], 0U);\r\n  }\r\n\r\n  for (c3_i23 = 0; c3_i23 < 6; c3_i23++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_vseq)[c3_i23], 1U);\r\n  }\r\n\r\n  for (c3_i24 = 0; c3_i24 < 11; c3_i24++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_x)[c3_i24], 2U);\r\n  }\r\n\r\n  for (c3_i25 = 0; c3_i25 < 3; c3_i25++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_old_u)[c3_i25], 3U);\r\n  }\r\n\r\n  for (c3_i26 = 0; c3_i26 < 7; c3_i26++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iA)[c3_i26], 4U);\r\n  }\r\n\r\n  for (c3_i27 = 0; c3_i27 < 3; c3_i27++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_umin)[c3_i27], 5U);\r\n  }\r\n\r\n  for (c3_i28 = 0; c3_i28 < 3; c3_i28++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_umax)[c3_i28], 6U);\r\n  }\r\n\r\n  for (c3_i29 = 0; c3_i29 < 2; c3_i29++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ymin)[c3_i29], 7U);\r\n  }\r\n\r\n  for (c3_i30 = 0; c3_i30 < 2; c3_i30++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ymax)[c3_i30], 8U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_switch_in, 9U);\r\n  for (c3_i31 = 0; c3_i31 < 2; c3_i31++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_ywt)[c3_i31], 10U);\r\n  }\r\n\r\n  for (c3_i32 = 0; c3_i32 < 3; c3_i32++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_duwt)[c3_i32], 11U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_rhoeps, 12U);\r\n  for (c3_i33 = 0; c3_i33 < 3; c3_i33++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_u)[c3_i33], 13U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_cost, 14U);\r\n  for (c3_i34 = 0; c3_i34 < 15; c3_i34++) {\r\n    _SFD_DATA_RANGE_CHECK((*c3_useq)[c3_i34], 15U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c3_status, 16U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_isQP, 17U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nu, 18U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_ny, 19U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_degrees, 20U);\r\n  for (c3_i35 = 0; c3_i35 < 36; c3_i35++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hinv[c3_i35], 21U);\r\n  }\r\n\r\n  for (c3_i36 = 0; c3_i36 < 66; c3_i36++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kx[c3_i36], 22U);\r\n  }\r\n\r\n  for (c3_i37 = 0; c3_i37 < 18; c3_i37++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ku1[c3_i37], 23U);\r\n  }\r\n\r\n  for (c3_i38 = 0; c3_i38 < 90; c3_i38++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kut[c3_i38], 24U);\r\n  }\r\n\r\n  for (c3_i39 = 0; c3_i39 < 60; c3_i39++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kr[c3_i39], 25U);\r\n  }\r\n\r\n  for (c3_i40 = 0; c3_i40 < 36; c3_i40++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Kv[c3_i40], 26U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mlim, 27U);\r\n  for (c3_i41 = 0; c3_i41 < 11; c3_i41++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mx[c3_i41], 28U);\r\n  }\r\n\r\n  for (c3_i42 = 0; c3_i42 < 3; c3_i42++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mu1[c3_i42], 29U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Mv, 30U);\r\n  for (c3_i43 = 0; c3_i43 < 6; c3_i43++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_z_degrees[c3_i43], 31U);\r\n  }\r\n\r\n  for (c3_i44 = 0; c3_i44 < 15; c3_i44++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_utarget[c3_i44], 32U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_p, 33U);\r\n  for (c3_i45 = 0; c3_i45 < 3; c3_i45++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_uoff[c3_i45], 34U);\r\n  }\r\n\r\n  for (c3_i46 = 0; c3_i46 < 2; c3_i46++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_yoff[c3_i46], 35U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_maxiter, 36U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_nxQP, 37U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c3_openloopflag, 38U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_lims_inport, 39U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umin, 40U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_umax, 41U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymin, 42U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ymax, 43U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_switch_inport, 44U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_switch, 45U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_enable_value, 46U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_cost, 47U);\r\n  for (c3_i47 = 0; c3_i47 < 36; c3_i47++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_H[c3_i47], 48U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_return_sequence, 49U);\r\n  for (c3_i48 = 0; c3_i48 < 5; c3_i48++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_blocking_moves[c3_i48], 50U);\r\n  }\r\n\r\n  for (c3_i49 = 0; c3_i49 < 36; c3_i49++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Linv[c3_i49], 51U);\r\n  }\r\n\r\n  for (c3_i50 = 0; c3_i50 < 6; c3_i50++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c3_Ac[c3_i50], 52U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_ywt, 53U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_duwt, 54U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_no_rhoeps, 55U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wy, 56U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wdu, 57U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Jm, 58U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_SuJm, 59U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I2JmWuI2Jm, 60U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Su1, 61U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1WuI2Jm, 62U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Sx, 63U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Hv, 64U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_Wu, 65U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c3_I1, 66U);\r\n  for (c3_i51 = 0; c3_i51 < 7; c3_i51++) {\r\n    _SFD_DATA_RANGE_CHECK((real_T)(*c3_iAout)[c3_i51], 67U);\r\n  }\r\n\r\n  chartInstance->c3_sfEvent = CALL_EVENT;\r\n  c3_chartstep_c3_mpclib(chartInstance);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void c3_chartstep_c3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c3_hoistedGlobal;\r\n  real_T c3_b_hoistedGlobal;\r\n  int32_T c3_i52;\r\n  real_T c3_rseq[10];\r\n  int32_T c3_i53;\r\n  real_T c3_vseq[6];\r\n  int32_T c3_i54;\r\n  real_T c3_x[11];\r\n  int32_T c3_i55;\r\n  real_T c3_old_u[3];\r\n  int32_T c3_i56;\r\n  boolean_T c3_iA[7];\r\n  int32_T c3_i57;\r\n  real_T c3_umin[3];\r\n  int32_T c3_i58;\r\n  real_T c3_umax[3];\r\n  int32_T c3_i59;\r\n  real_T c3_ymin[2];\r\n  int32_T c3_i60;\r\n  real_T c3_ymax[2];\r\n  real_T c3_switch_in;\r\n  int32_T c3_i61;\r\n  real_T c3_ywt[2];\r\n  int32_T c3_i62;\r\n  real_T c3_duwt[3];\r\n  real_T c3_rhoeps;\r\n  uint32_T c3_debug_family_var_map[71];\r\n  char_T c3_DataType[6];\r\n  boolean_T c3_c_isQP;\r\n  real_T c3_c_nu;\r\n  real_T c3_c_ny;\r\n  real_T c3_c_degrees;\r\n  real_T c3_c_Hinv[36];\r\n  real_T c3_c_Kx[66];\r\n  real_T c3_c_Ku1[18];\r\n  real_T c3_c_Kut[90];\r\n  real_T c3_c_Kr[60];\r\n  real_T c3_c_Kv[36];\r\n  real_T c3_c_Mlim;\r\n  real_T c3_c_Mx[11];\r\n  real_T c3_c_Mu1[3];\r\n  real_T c3_c_Mv;\r\n  real_T c3_c_z_degrees[6];\r\n  real_T c3_c_utarget[15];\r\n  real_T c3_c_p;\r\n  real_T c3_c_uoff[3];\r\n  real_T c3_c_yoff[2];\r\n  real_T c3_c_maxiter;\r\n  real_T c3_c_nxQP;\r\n  boolean_T c3_c_openloopflag;\r\n  real_T c3_c_lims_inport;\r\n  real_T c3_c_no_umin;\r\n  real_T c3_c_no_umax;\r\n  real_T c3_c_no_ymin;\r\n  real_T c3_c_no_ymax;\r\n  real_T c3_c_switch_inport;\r\n  real_T c3_c_no_switch;\r\n  real_T c3_c_enable_value;\r\n  real_T c3_c_return_cost;\r\n  real_T c3_c_H[36];\r\n  real_T c3_c_return_sequence;\r\n  real_T c3_c_blocking_moves[5];\r\n  real_T c3_c_Linv[36];\r\n  real_T c3_c_Ac[6];\r\n  real_T c3_c_no_ywt;\r\n  real_T c3_c_no_duwt;\r\n  real_T c3_c_no_rhoeps;\r\n  real_T c3_c_Wy;\r\n  real_T c3_c_Wdu;\r\n  real_T c3_c_Jm;\r\n  real_T c3_c_SuJm;\r\n  real_T c3_c_I2JmWuI2Jm;\r\n  real_T c3_c_Su1;\r\n  real_T c3_c_I1WuI2Jm;\r\n  real_T c3_c_Sx;\r\n  real_T c3_c_Hv;\r\n  real_T c3_c_Wu;\r\n  real_T c3_c_I1;\r\n  real_T c3_nargin = 63.0;\r\n  real_T c3_nargout = 5.0;\r\n  real_T c3_u[3];\r\n  real_T c3_cost;\r\n  real_T c3_useq[15];\r\n  real_T c3_status;\r\n  boolean_T c3_iAout[7];\r\n  int32_T c3_i63;\r\n  int32_T c3_i64;\r\n  static real_T c3_d_Linv[36] = { 0.890943967335334, -0.3765340064257745,\r\n    -0.081968447195651092, -3.5489218669425688, -0.0066855072825417984,\r\n    0.10307825269687225, 0.0, 0.79076149529618434, -1.45244561488651,\r\n    0.37621263709139419, -2.9239965883035044, 0.46691227779109384, 0.0, 0.0,\r\n    5.1774615543769329, -0.55386901645657716, -4.1318677662181731,\r\n    -3.4991992981439619, 0.0, 0.0, 0.0, 4.6605654371565022,\r\n    -0.041083569621347855, -0.15597566320058937, 0.0, 0.0, 0.0, 0.0,\r\n    5.5702072264245031, -0.95560346771331783, 0.0, 0.0, 0.0, 0.0, 0.0,\r\n    8.8039367573053688 };\r\n\r\n  int32_T c3_i65;\r\n  static real_T c3_d_blocking_moves[5] = { 1.0, 1.0, 0.0, 0.0, 0.0 };\r\n\r\n  int32_T c3_i66;\r\n  static real_T c3_d_H[36] = { 1.2597930755942788, 0.59987105700346466,\r\n    0.188228026070508, 0.93325195233225344, 0.46291238552612662,\r\n    0.095028876539678384, 0.59987105700346466, 1.8848612022853453,\r\n    0.53826162835208635, 0.36860620668000732, 1.3921398940378122,\r\n    0.2645877164403112, 0.188228026070508, 0.53826162835208635,\r\n    0.19128473163107027, 0.12261439624071246, 0.42557379326757072,\r\n    0.09364275287343965, 0.93325195233225344, 0.36860620668000732,\r\n    0.12261439624071246, 0.74150713022437431, 0.29103635087465185,\r\n    0.062985445368814619, 0.46291238552612662, 1.3921398940378122,\r\n    0.42557379326757072, 0.29103635087465185, 1.0813969472131397,\r\n    0.21243057759953443, 0.095028876539678384, 0.2645877164403112,\r\n    0.09364275287343965, 0.062985445368814619, 0.21243057759953443,\r\n    0.059149576937758915 };\r\n\r\n  int32_T c3_i67;\r\n  int32_T c3_i68;\r\n  int32_T c3_i69;\r\n  int32_T c3_i70;\r\n  int32_T c3_i71;\r\n  int32_T c3_i72;\r\n  int32_T c3_i73;\r\n  int32_T c3_i74;\r\n  static real_T c3_d_Kr[60] = { -0.18126924692564353, -0.018671577551657329,\r\n    -0.32967995397095429, -0.069478267418748366, -0.45118836391499728,\r\n    -0.14501667000509094, -0.55067103589379174, -0.23863046066526389,\r\n    -0.6321205588412, -0.34454251473540026, -0.0, -0.19879234322843986, -0.0,\r\n    -0.39123188951446553, -0.0, -0.573089746155531, -0.0, -0.74187890047177918,\r\n    -0.0, -0.89636167648567255, -0.0, -0.0037930220744868356, -0.0,\r\n    -0.0286066973859312, -0.0, -0.090540727786153713, -0.0, -0.20029783672802043,\r\n    -0.0, -0.36350399542963946, -0.0, -0.0, -0.18126924692564353,\r\n    -0.018671577551657329, -0.32967995397095429, -0.069478267418748366,\r\n    -0.45118836391499728, -0.14501667000509094, -0.55067103589379174,\r\n    -0.23863046066526389, -0.0, -0.0, -0.0, -0.19879234322843986, -0.0,\r\n    -0.39123188951446553, -0.0, -0.573089746155531, -0.0, -0.74187890047177918,\r\n    -0.0, -0.0, -0.0, -0.0037930220744868356, -0.0, -0.0286066973859312, -0.0,\r\n    -0.090540727786153713, -0.0, -0.20029783672802043 };\r\n\r\n  int32_T c3_i75;\r\n  int32_T c3_i76;\r\n  static real_T c3_d_Ku1[18] = { 1.2497930755942788, 0.59987105700346466,\r\n    0.18822802607050804, 0.59987105700346466, 1.8748612022853453,\r\n    0.53826162835208624, 0.188228026070508, 0.53826162835208635,\r\n    0.18128473163107026, 0.93325195233225344, 0.36860620668000732,\r\n    0.12261439624071246, 0.46291238552612662, 1.3921398940378122,\r\n    0.42557379326757072, 0.095028876539678384, 0.2645877164403112,\r\n    0.09364275287343965 };\r\n\r\n  int32_T c3_i77;\r\n  static real_T c3_d_Kx[66] = { 1.4950071410106682, 0.65738773217961954,\r\n    1.0328079237488559, 0.567234842535362, 1.6113851449398879,\r\n    0.60348869766750224, 1.5114962368787421, 2.1449291595465869,\r\n    0.28066769832603405, 0.65398250774849676, 0.81633949037616071,\r\n    1.2749901453193779, 2.3252208946601427, 3.7278479094264276,\r\n    1.6924216567122496, 5.0863219785039542, 0.0, 0.0, 0.0, 0.8240126387275275,\r\n    2.0299698690078887, 2.8013545558558883, 0.35003360229234354,\r\n    0.53952675278459827, 0.83522293045637619, 0.52699933031000479,\r\n    1.4335001534251903, 0.0, 0.0, 0.0, 0.26450903270165821, 0.5902679848530179,\r\n    0.68674227940423171, 0.94816285509076892, 0.37139389963332908,\r\n    0.57498774460151314, 0.35923583049728058, 0.98320422379931072,\r\n    0.49355972586851837, 1.1819373981786196, 1.5128086007053869,\r\n    0.17972037907376839, 0.40379938814124861, 0.47179697564076051,\r\n    0.92922750853952851, 1.5394509413528972, 2.4178458647026169,\r\n    1.3029118393594785, 3.7508458888458702, 0.0, 0.0, 0.0, 0.64065329657653858,\r\n    1.5146067683962592, 1.9049928793702156, 0.16955883990592463,\r\n    0.24927859671174421, 0.38188885150887275, 0.26533887117500837,\r\n    0.70012039644749491, 0.0, 0.0, 0.0, 0.134574598551006, 0.29141164621829685,\r\n    0.3232382839745922 };\r\n\r\n  int32_T c3_i78;\r\n  static real_T c3_d_Hinv[36] = { 13.54779407711173, -1.4461662344138535,\r\n    1.2081816624480111, -16.555785626563523, -0.13574159670048874,\r\n    0.90749441779680484, -1.4461662344138535, 11.644201078515971,\r\n    2.7193942828191506, 1.800664878672841, -16.733449917983865,\r\n    4.1106661648821863, 1.2081816624480111, 2.7193942828191506,\r\n    56.429606000085734, -1.8658009865707206, -19.671512706492557,\r\n    -30.806729322066776, -16.555785626563523, 1.800664878672841,\r\n    -1.8658009865707206, 21.746886461221472, -0.079793111758778262,\r\n    -1.3731998744967511, -0.13574159670048874, -16.733449917983865,\r\n    -19.671512706492557, -0.079793111758778262, 31.940386532817474,\r\n    -8.4130724948097537, 0.90749441779680484, 4.1106661648821863,\r\n    -30.806729322066776, -1.3731998744967511, -8.4130724948097537,\r\n    77.509302426632573 };\r\n\r\n  int32_T c3_i79;\r\n  static char_T c3_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c3_i80;\r\n  int32_T c3_i81;\r\n  int32_T c3_i82;\r\n  int32_T c3_i83;\r\n  real_T c3_b_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  int32_T c3_i84;\r\n  real_T c3_c_u[6];\r\n  const mxArray *c3_b_y = NULL;\r\n  int32_T c3_i85;\r\n  real_T c3_d_u[3];\r\n  const mxArray *c3_c_y = NULL;\r\n  int32_T c3_i86;\r\n  real_T c3_e_u[3];\r\n  const mxArray *c3_d_y = NULL;\r\n  int32_T c3_i87;\r\n  real_T c3_f_u[2];\r\n  const mxArray *c3_e_y = NULL;\r\n  int32_T c3_i88;\r\n  real_T c3_g_u[2];\r\n  const mxArray *c3_f_y = NULL;\r\n  real_T c3_h_u;\r\n  const mxArray *c3_g_y = NULL;\r\n  int32_T c3_i89;\r\n  real_T c3_i_u[11];\r\n  const mxArray *c3_h_y = NULL;\r\n  int32_T c3_i90;\r\n  real_T c3_j_u[3];\r\n  const mxArray *c3_i_y = NULL;\r\n  int32_T c3_i91;\r\n  boolean_T c3_k_u[7];\r\n  const mxArray *c3_j_y = NULL;\r\n  boolean_T c3_l_u;\r\n  const mxArray *c3_k_y = NULL;\r\n  real_T c3_m_u;\r\n  const mxArray *c3_l_y = NULL;\r\n  real_T c3_n_u;\r\n  const mxArray *c3_m_y = NULL;\r\n  real_T c3_o_u;\r\n  const mxArray *c3_n_y = NULL;\r\n  int32_T c3_i92;\r\n  real_T c3_p_u[36];\r\n  const mxArray *c3_o_y = NULL;\r\n  int32_T c3_i93;\r\n  real_T c3_q_u[66];\r\n  const mxArray *c3_p_y = NULL;\r\n  int32_T c3_i94;\r\n  real_T c3_r_u[18];\r\n  const mxArray *c3_q_y = NULL;\r\n  int32_T c3_i95;\r\n  real_T c3_s_u[90];\r\n  const mxArray *c3_r_y = NULL;\r\n  int32_T c3_i96;\r\n  real_T c3_t_u[60];\r\n  const mxArray *c3_s_y = NULL;\r\n  int32_T c3_i97;\r\n  real_T c3_u_u[36];\r\n  const mxArray *c3_t_y = NULL;\r\n  real_T c3_v_u;\r\n  const mxArray *c3_u_y = NULL;\r\n  int32_T c3_i98;\r\n  real_T c3_w_u[11];\r\n  const mxArray *c3_v_y = NULL;\r\n  int32_T c3_i99;\r\n  real_T c3_x_u[3];\r\n  const mxArray *c3_w_y = NULL;\r\n  real_T c3_y_u;\r\n  const mxArray *c3_x_y = NULL;\r\n  int32_T c3_i100;\r\n  real_T c3_ab_u[6];\r\n  const mxArray *c3_y_y = NULL;\r\n  int32_T c3_i101;\r\n  real_T c3_bb_u[15];\r\n  const mxArray *c3_ab_y = NULL;\r\n  real_T c3_cb_u;\r\n  const mxArray *c3_bb_y = NULL;\r\n  int32_T c3_i102;\r\n  real_T c3_db_u[3];\r\n  const mxArray *c3_cb_y = NULL;\r\n  int32_T c3_i103;\r\n  real_T c3_eb_u[2];\r\n  const mxArray *c3_db_y = NULL;\r\n  real_T c3_fb_u;\r\n  const mxArray *c3_eb_y = NULL;\r\n  real_T c3_gb_u;\r\n  const mxArray *c3_fb_y = NULL;\r\n  boolean_T c3_hb_u;\r\n  const mxArray *c3_gb_y = NULL;\r\n  real_T c3_ib_u;\r\n  const mxArray *c3_hb_y = NULL;\r\n  real_T c3_jb_u;\r\n  const mxArray *c3_ib_y = NULL;\r\n  real_T c3_kb_u;\r\n  const mxArray *c3_jb_y = NULL;\r\n  real_T c3_lb_u;\r\n  const mxArray *c3_kb_y = NULL;\r\n  real_T c3_mb_u;\r\n  const mxArray *c3_lb_y = NULL;\r\n  real_T c3_nb_u;\r\n  const mxArray *c3_mb_y = NULL;\r\n  real_T c3_ob_u;\r\n  const mxArray *c3_nb_y = NULL;\r\n  real_T c3_pb_u;\r\n  const mxArray *c3_ob_y = NULL;\r\n  real_T c3_qb_u;\r\n  const mxArray *c3_pb_y = NULL;\r\n  int32_T c3_i104;\r\n  real_T c3_rb_u[36];\r\n  const mxArray *c3_qb_y = NULL;\r\n  real_T c3_sb_u;\r\n  const mxArray *c3_rb_y = NULL;\r\n  int32_T c3_i105;\r\n  real_T c3_tb_u[5];\r\n  const mxArray *c3_sb_y = NULL;\r\n  int32_T c3_i106;\r\n  real_T c3_ub_u[36];\r\n  const mxArray *c3_tb_y = NULL;\r\n  int32_T c3_i107;\r\n  real_T c3_vb_u[6];\r\n  const mxArray *c3_ub_y = NULL;\r\n  int32_T c3_i108;\r\n  real_T c3_wb_u[2];\r\n  const mxArray *c3_vb_y = NULL;\r\n  int32_T c3_i109;\r\n  real_T c3_xb_u[3];\r\n  const mxArray *c3_wb_y = NULL;\r\n  real_T c3_yb_u;\r\n  const mxArray *c3_xb_y = NULL;\r\n  real_T c3_ac_u;\r\n  const mxArray *c3_yb_y = NULL;\r\n  real_T c3_bc_u;\r\n  const mxArray *c3_ac_y = NULL;\r\n  real_T c3_cc_u;\r\n  const mxArray *c3_bc_y = NULL;\r\n  real_T c3_dc_u;\r\n  const mxArray *c3_cc_y = NULL;\r\n  real_T c3_ec_u;\r\n  const mxArray *c3_dc_y = NULL;\r\n  real_T c3_fc_u;\r\n  const mxArray *c3_ec_y = NULL;\r\n  real_T c3_gc_u;\r\n  const mxArray *c3_fc_y = NULL;\r\n  real_T c3_hc_u;\r\n  const mxArray *c3_gc_y = NULL;\r\n  real_T c3_ic_u;\r\n  const mxArray *c3_hc_y = NULL;\r\n  real_T c3_jc_u;\r\n  const mxArray *c3_ic_y = NULL;\r\n  real_T c3_kc_u;\r\n  const mxArray *c3_jc_y = NULL;\r\n  real_T c3_lc_u;\r\n  const mxArray *c3_kc_y = NULL;\r\n  real_T c3_mc_u;\r\n  const mxArray *c3_lc_y = NULL;\r\n  real_T c3_nc_u;\r\n  const mxArray *c3_mc_y = NULL;\r\n  const mxArray *c3_b_iAout = NULL;\r\n  const mxArray *c3_b_status = NULL;\r\n  const mxArray *c3_b_useq = NULL;\r\n  const mxArray *c3_b_cost = NULL;\r\n  const mxArray *c3_oc_u = NULL;\r\n  real_T c3_dv18[3];\r\n  int32_T c3_i110;\r\n  real_T c3_dv19[15];\r\n  int32_T c3_i111;\r\n  boolean_T c3_bv1[7];\r\n  int32_T c3_i112;\r\n  int32_T c3_i113;\r\n  int32_T c3_i114;\r\n  int32_T c3_i115;\r\n  real_T *c3_b_switch_in;\r\n  real_T *c3_b_rhoeps;\r\n  real_T *c3_c_cost;\r\n  real_T *c3_c_status;\r\n  real_T (*c3_pc_u)[3];\r\n  real_T (*c3_c_useq)[15];\r\n  boolean_T (*c3_c_iAout)[7];\r\n  real_T (*c3_b_duwt)[3];\r\n  real_T (*c3_b_ywt)[2];\r\n  real_T (*c3_b_ymax)[2];\r\n  real_T (*c3_b_ymin)[2];\r\n  real_T (*c3_b_umax)[3];\r\n  real_T (*c3_b_umin)[3];\r\n  boolean_T (*c3_b_iA)[7];\r\n  real_T (*c3_b_old_u)[3];\r\n  real_T (*c3_b_x)[11];\r\n  real_T (*c3_b_vseq)[6];\r\n  real_T (*c3_b_rseq)[10];\r\n  c3_c_iAout = (boolean_T (*)[7])ssGetOutputPortSignal(chartInstance->S, 5);\r\n  c3_c_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n  c3_c_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c3_c_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c3_pc_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c3_b_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n  c3_b_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n  c3_b_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n  c3_b_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n  c3_b_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n  c3_b_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n  c3_b_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n  c3_b_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n  c3_b_iA = (boolean_T (*)[7])ssGetInputPortSignal(chartInstance->S, 4);\r\n  c3_b_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n  c3_b_x = (real_T (*)[11])ssGetInputPortSignal(chartInstance->S, 2);\r\n  c3_b_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n  c3_b_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n  c3_hoistedGlobal = *c3_b_switch_in;\r\n  c3_b_hoistedGlobal = *c3_b_rhoeps;\r\n  for (c3_i52 = 0; c3_i52 < 10; c3_i52++) {\r\n    c3_rseq[c3_i52] = (*c3_b_rseq)[c3_i52];\r\n  }\r\n\r\n  for (c3_i53 = 0; c3_i53 < 6; c3_i53++) {\r\n    c3_vseq[c3_i53] = (*c3_b_vseq)[c3_i53];\r\n  }\r\n\r\n  for (c3_i54 = 0; c3_i54 < 11; c3_i54++) {\r\n    c3_x[c3_i54] = (*c3_b_x)[c3_i54];\r\n  }\r\n\r\n  for (c3_i55 = 0; c3_i55 < 3; c3_i55++) {\r\n    c3_old_u[c3_i55] = (*c3_b_old_u)[c3_i55];\r\n  }\r\n\r\n  for (c3_i56 = 0; c3_i56 < 7; c3_i56++) {\r\n    c3_iA[c3_i56] = (*c3_b_iA)[c3_i56];\r\n  }\r\n\r\n  for (c3_i57 = 0; c3_i57 < 3; c3_i57++) {\r\n    c3_umin[c3_i57] = (*c3_b_umin)[c3_i57];\r\n  }\r\n\r\n  for (c3_i58 = 0; c3_i58 < 3; c3_i58++) {\r\n    c3_umax[c3_i58] = (*c3_b_umax)[c3_i58];\r\n  }\r\n\r\n  for (c3_i59 = 0; c3_i59 < 2; c3_i59++) {\r\n    c3_ymin[c3_i59] = (*c3_b_ymin)[c3_i59];\r\n  }\r\n\r\n  for (c3_i60 = 0; c3_i60 < 2; c3_i60++) {\r\n    c3_ymax[c3_i60] = (*c3_b_ymax)[c3_i60];\r\n  }\r\n\r\n  c3_switch_in = c3_hoistedGlobal;\r\n  for (c3_i61 = 0; c3_i61 < 2; c3_i61++) {\r\n    c3_ywt[c3_i61] = (*c3_b_ywt)[c3_i61];\r\n  }\r\n\r\n  for (c3_i62 = 0; c3_i62 < 3; c3_i62++) {\r\n    c3_duwt[c3_i62] = (*c3_b_duwt)[c3_i62];\r\n  }\r\n\r\n  c3_rhoeps = c3_b_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 71U, 71U, c3_debug_family_names,\r\n    c3_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_DataType, 0U, c3_t_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_isQP, 1U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nu, 2U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_ny, 3U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_degrees, 4U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Hinv, 5U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kx, 6U, c3_s_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ku1, 7U, c3_r_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kut, 8U, c3_q_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kr, 9U, c3_p_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Kv, 10U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Mlim, 11U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mx, 12U, c3_o_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Mu1, 13U, c3_n_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Mv, 14U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_z_degrees, 15U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_utarget, 16U, c3_m_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_p, 17U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_uoff, 18U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_yoff, 19U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_maxiter, 20U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_nxQP, 21U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_openloopflag, 22U, c3_l_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_lims_inport, 23U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umin, 24U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_umax, 25U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymin, 26U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ymax, 27U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_switch_inport, 28U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_switch, 29U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_enable_value, 30U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_cost, 31U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_H, 32U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_return_sequence, 33U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_blocking_moves, 34U, c3_k_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Linv, 35U, c3_j_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_c_Ac, 36U, c3_i_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_ywt, 37U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_duwt, 38U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_no_rhoeps, 39U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wy, 40U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wdu, 41U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Jm, 42U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_SuJm, 43U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I2JmWuI2Jm, 44U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Su1, 45U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1WuI2Jm, 46U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Sx, 47U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Hv, 48U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_Wu, 49U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_c_I1, 50U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargin, 51U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_nargout, 52U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_rseq, 53U, c3_h_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_vseq, 54U, c3_g_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_x, 55U, c3_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_old_u, 56U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_iA, 57U, c3_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_umin, 58U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_umax, 59U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ymin, 60U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ymax, 61U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_switch_in, 62U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_ywt, 63U, c3_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c3_duwt, 64U, c3_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c3_rhoeps, 65U, c3_b_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_u, 66U, c3_d_sf_marshallOut,\r\n    c3_d_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_cost, 67U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_useq, 68U, c3_c_sf_marshallOut,\r\n    c3_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c3_status, 69U, c3_b_sf_marshallOut,\r\n    c3_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c3_iAout, 70U, c3_sf_marshallOut,\r\n    c3_sf_marshallIn);\r\n  c3_c_I1 = c3_b_I1;\r\n  c3_c_Wu = c3_b_Wu;\r\n  c3_c_Hv = c3_b_Hv;\r\n  c3_c_Sx = c3_b_Sx;\r\n  c3_c_I1WuI2Jm = c3_b_I1WuI2Jm;\r\n  c3_c_Su1 = c3_b_Su1;\r\n  c3_c_I2JmWuI2Jm = c3_b_I2JmWuI2Jm;\r\n  c3_c_SuJm = c3_b_SuJm;\r\n  c3_c_Jm = c3_b_Jm;\r\n  c3_c_Wdu = c3_b_Wdu;\r\n  c3_c_Wy = c3_b_Wy;\r\n  c3_c_no_rhoeps = c3_b_no_rhoeps;\r\n  c3_c_no_duwt = c3_b_no_duwt;\r\n  c3_c_no_ywt = c3_b_no_ywt;\r\n  for (c3_i63 = 0; c3_i63 < 6; c3_i63++) {\r\n    c3_c_Ac[c3_i63] = 0.0;\r\n  }\r\n\r\n  for (c3_i64 = 0; c3_i64 < 36; c3_i64++) {\r\n    c3_c_Linv[c3_i64] = c3_d_Linv[c3_i64];\r\n  }\r\n\r\n  for (c3_i65 = 0; c3_i65 < 5; c3_i65++) {\r\n    c3_c_blocking_moves[c3_i65] = c3_d_blocking_moves[c3_i65];\r\n  }\r\n\r\n  c3_c_return_sequence = c3_b_return_sequence;\r\n  for (c3_i66 = 0; c3_i66 < 36; c3_i66++) {\r\n    c3_c_H[c3_i66] = c3_d_H[c3_i66];\r\n  }\r\n\r\n  c3_c_return_cost = c3_b_return_cost;\r\n  c3_c_enable_value = c3_b_enable_value;\r\n  c3_c_no_switch = c3_b_no_switch;\r\n  c3_c_switch_inport = c3_b_switch_inport;\r\n  c3_c_no_ymax = c3_b_no_ymax;\r\n  c3_c_no_ymin = c3_b_no_ymin;\r\n  c3_c_no_umax = c3_b_no_umax;\r\n  c3_c_no_umin = c3_b_no_umin;\r\n  c3_c_lims_inport = c3_b_lims_inport;\r\n  c3_c_openloopflag = c3_b_openloopflag;\r\n  c3_c_nxQP = c3_b_nxQP;\r\n  c3_c_maxiter = c3_b_maxiter;\r\n  for (c3_i67 = 0; c3_i67 < 2; c3_i67++) {\r\n    c3_c_yoff[c3_i67] = 0.0;\r\n  }\r\n\r\n  for (c3_i68 = 0; c3_i68 < 3; c3_i68++) {\r\n    c3_c_uoff[c3_i68] = 0.0;\r\n  }\r\n\r\n  c3_c_p = c3_b_p;\r\n  for (c3_i69 = 0; c3_i69 < 15; c3_i69++) {\r\n    c3_c_utarget[c3_i69] = 0.0;\r\n  }\r\n\r\n  for (c3_i70 = 0; c3_i70 < 6; c3_i70++) {\r\n    c3_c_z_degrees[c3_i70] = 0.0;\r\n  }\r\n\r\n  c3_c_Mv = c3_b_Mv;\r\n  for (c3_i71 = 0; c3_i71 < 3; c3_i71++) {\r\n    c3_c_Mu1[c3_i71] = 0.0;\r\n  }\r\n\r\n  for (c3_i72 = 0; c3_i72 < 11; c3_i72++) {\r\n    c3_c_Mx[c3_i72] = 0.0;\r\n  }\r\n\r\n  c3_c_Mlim = c3_b_Mlim;\r\n  for (c3_i73 = 0; c3_i73 < 36; c3_i73++) {\r\n    c3_c_Kv[c3_i73] = 0.0;\r\n  }\r\n\r\n  for (c3_i74 = 0; c3_i74 < 60; c3_i74++) {\r\n    c3_c_Kr[c3_i74] = c3_d_Kr[c3_i74];\r\n  }\r\n\r\n  for (c3_i75 = 0; c3_i75 < 90; c3_i75++) {\r\n    c3_c_Kut[c3_i75] = 0.0;\r\n  }\r\n\r\n  for (c3_i76 = 0; c3_i76 < 18; c3_i76++) {\r\n    c3_c_Ku1[c3_i76] = c3_d_Ku1[c3_i76];\r\n  }\r\n\r\n  for (c3_i77 = 0; c3_i77 < 66; c3_i77++) {\r\n    c3_c_Kx[c3_i77] = c3_d_Kx[c3_i77];\r\n  }\r\n\r\n  for (c3_i78 = 0; c3_i78 < 36; c3_i78++) {\r\n    c3_c_Hinv[c3_i78] = c3_d_Hinv[c3_i78];\r\n  }\r\n\r\n  c3_c_degrees = c3_b_degrees;\r\n  c3_c_ny = c3_b_ny;\r\n  c3_c_nu = c3_b_nu;\r\n  c3_c_isQP = c3_b_isQP;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 8);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 9);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 10);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 12);\r\n  for (c3_i79 = 0; c3_i79 < 6; c3_i79++) {\r\n    c3_DataType[c3_i79] = c3_cv0[c3_i79];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 13);\r\n  for (c3_i80 = 0; c3_i80 < 3; c3_i80++) {\r\n    c3_u[c3_i80] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 14);\r\n  c3_cost = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 15);\r\n  for (c3_i81 = 0; c3_i81 < 15; c3_i81++) {\r\n    c3_useq[c3_i81] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 16);\r\n  c3_status = 1.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 17);\r\n  for (c3_i82 = 0; c3_i82 < 7; c3_i82++) {\r\n    c3_iAout[c3_i82] = FALSE;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 18);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, 19);\r\n  for (c3_i83 = 0; c3_i83 < 10; c3_i83++) {\r\n    c3_b_u[c3_i83] = c3_rseq[c3_i83];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_b_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  for (c3_i84 = 0; c3_i84 < 6; c3_i84++) {\r\n    c3_c_u[c3_i84] = c3_vseq[c3_i84];\r\n  }\r\n\r\n  c3_b_y = NULL;\r\n  sf_mex_assign(&c3_b_y, sf_mex_create(\"y\", c3_c_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i85 = 0; c3_i85 < 3; c3_i85++) {\r\n    c3_d_u[c3_i85] = c3_umin[c3_i85];\r\n  }\r\n\r\n  c3_c_y = NULL;\r\n  sf_mex_assign(&c3_c_y, sf_mex_create(\"y\", c3_d_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i86 = 0; c3_i86 < 3; c3_i86++) {\r\n    c3_e_u[c3_i86] = c3_umax[c3_i86];\r\n  }\r\n\r\n  c3_d_y = NULL;\r\n  sf_mex_assign(&c3_d_y, sf_mex_create(\"y\", c3_e_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i87 = 0; c3_i87 < 2; c3_i87++) {\r\n    c3_f_u[c3_i87] = c3_ymin[c3_i87];\r\n  }\r\n\r\n  c3_e_y = NULL;\r\n  sf_mex_assign(&c3_e_y, sf_mex_create(\"y\", c3_f_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  for (c3_i88 = 0; c3_i88 < 2; c3_i88++) {\r\n    c3_g_u[c3_i88] = c3_ymax[c3_i88];\r\n  }\r\n\r\n  c3_f_y = NULL;\r\n  sf_mex_assign(&c3_f_y, sf_mex_create(\"y\", c3_g_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c3_h_u = c3_switch_in;\r\n  c3_g_y = NULL;\r\n  sf_mex_assign(&c3_g_y, sf_mex_create(\"y\", &c3_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i89 = 0; c3_i89 < 11; c3_i89++) {\r\n    c3_i_u[c3_i89] = c3_x[c3_i89];\r\n  }\r\n\r\n  c3_h_y = NULL;\r\n  sf_mex_assign(&c3_h_y, sf_mex_create(\"y\", c3_i_u, 0, 0U, 1U, 0U, 1, 11), FALSE);\r\n  for (c3_i90 = 0; c3_i90 < 3; c3_i90++) {\r\n    c3_j_u[c3_i90] = c3_old_u[c3_i90];\r\n  }\r\n\r\n  c3_i_y = NULL;\r\n  sf_mex_assign(&c3_i_y, sf_mex_create(\"y\", c3_j_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  for (c3_i91 = 0; c3_i91 < 7; c3_i91++) {\r\n    c3_k_u[c3_i91] = c3_iA[c3_i91];\r\n  }\r\n\r\n  c3_j_y = NULL;\r\n  sf_mex_assign(&c3_j_y, sf_mex_create(\"y\", c3_k_u, 11, 0U, 1U, 0U, 1, 7), FALSE);\r\n  c3_l_u = c3_b_isQP;\r\n  c3_k_y = NULL;\r\n  sf_mex_assign(&c3_k_y, sf_mex_create(\"y\", &c3_l_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_m_u = c3_b_nu;\r\n  c3_l_y = NULL;\r\n  sf_mex_assign(&c3_l_y, sf_mex_create(\"y\", &c3_m_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_n_u = c3_b_ny;\r\n  c3_m_y = NULL;\r\n  sf_mex_assign(&c3_m_y, sf_mex_create(\"y\", &c3_n_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_o_u = c3_b_degrees;\r\n  c3_n_y = NULL;\r\n  sf_mex_assign(&c3_n_y, sf_mex_create(\"y\", &c3_o_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i92 = 0; c3_i92 < 36; c3_i92++) {\r\n    c3_p_u[c3_i92] = c3_d_Hinv[c3_i92];\r\n  }\r\n\r\n  c3_o_y = NULL;\r\n  sf_mex_assign(&c3_o_y, sf_mex_create(\"y\", c3_p_u, 0, 0U, 1U, 0U, 2, 6, 6),\r\n                FALSE);\r\n  for (c3_i93 = 0; c3_i93 < 66; c3_i93++) {\r\n    c3_q_u[c3_i93] = c3_d_Kx[c3_i93];\r\n  }\r\n\r\n  c3_p_y = NULL;\r\n  sf_mex_assign(&c3_p_y, sf_mex_create(\"y\", c3_q_u, 0, 0U, 1U, 0U, 2, 11, 6),\r\n                FALSE);\r\n  for (c3_i94 = 0; c3_i94 < 18; c3_i94++) {\r\n    c3_r_u[c3_i94] = c3_d_Ku1[c3_i94];\r\n  }\r\n\r\n  c3_q_y = NULL;\r\n  sf_mex_assign(&c3_q_y, sf_mex_create(\"y\", c3_r_u, 0, 0U, 1U, 0U, 2, 3, 6),\r\n                FALSE);\r\n  for (c3_i95 = 0; c3_i95 < 90; c3_i95++) {\r\n    c3_s_u[c3_i95] = 0.0;\r\n  }\r\n\r\n  c3_r_y = NULL;\r\n  sf_mex_assign(&c3_r_y, sf_mex_create(\"y\", c3_s_u, 0, 0U, 1U, 0U, 2, 15, 6),\r\n                FALSE);\r\n  for (c3_i96 = 0; c3_i96 < 60; c3_i96++) {\r\n    c3_t_u[c3_i96] = c3_d_Kr[c3_i96];\r\n  }\r\n\r\n  c3_s_y = NULL;\r\n  sf_mex_assign(&c3_s_y, sf_mex_create(\"y\", c3_t_u, 0, 0U, 1U, 0U, 2, 10, 6),\r\n                FALSE);\r\n  for (c3_i97 = 0; c3_i97 < 36; c3_i97++) {\r\n    c3_u_u[c3_i97] = 0.0;\r\n  }\r\n\r\n  c3_t_y = NULL;\r\n  sf_mex_assign(&c3_t_y, sf_mex_create(\"y\", c3_u_u, 0, 0U, 1U, 0U, 2, 6, 6),\r\n                FALSE);\r\n  c3_v_u = c3_b_Mlim;\r\n  c3_u_y = NULL;\r\n  sf_mex_assign(&c3_u_y, sf_mex_create(\"y\", &c3_v_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i98 = 0; c3_i98 < 11; c3_i98++) {\r\n    c3_w_u[c3_i98] = 0.0;\r\n  }\r\n\r\n  c3_v_y = NULL;\r\n  sf_mex_assign(&c3_v_y, sf_mex_create(\"y\", c3_w_u, 0, 0U, 1U, 0U, 2, 1, 11),\r\n                FALSE);\r\n  for (c3_i99 = 0; c3_i99 < 3; c3_i99++) {\r\n    c3_x_u[c3_i99] = 0.0;\r\n  }\r\n\r\n  c3_w_y = NULL;\r\n  sf_mex_assign(&c3_w_y, sf_mex_create(\"y\", c3_x_u, 0, 0U, 1U, 0U, 2, 1, 3),\r\n                FALSE);\r\n  c3_y_u = c3_b_Mv;\r\n  c3_x_y = NULL;\r\n  sf_mex_assign(&c3_x_y, sf_mex_create(\"y\", &c3_y_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i100 = 0; c3_i100 < 6; c3_i100++) {\r\n    c3_ab_u[c3_i100] = 0.0;\r\n  }\r\n\r\n  c3_y_y = NULL;\r\n  sf_mex_assign(&c3_y_y, sf_mex_create(\"y\", c3_ab_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  for (c3_i101 = 0; c3_i101 < 15; c3_i101++) {\r\n    c3_bb_u[c3_i101] = 0.0;\r\n  }\r\n\r\n  c3_ab_y = NULL;\r\n  sf_mex_assign(&c3_ab_y, sf_mex_create(\"y\", c3_bb_u, 0, 0U, 1U, 0U, 1, 15),\r\n                FALSE);\r\n  c3_cb_u = c3_b_p;\r\n  c3_bb_y = NULL;\r\n  sf_mex_assign(&c3_bb_y, sf_mex_create(\"y\", &c3_cb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i102 = 0; c3_i102 < 3; c3_i102++) {\r\n    c3_db_u[c3_i102] = 0.0;\r\n  }\r\n\r\n  c3_cb_y = NULL;\r\n  sf_mex_assign(&c3_cb_y, sf_mex_create(\"y\", c3_db_u, 0, 0U, 1U, 0U, 1, 3),\r\n                FALSE);\r\n  for (c3_i103 = 0; c3_i103 < 2; c3_i103++) {\r\n    c3_eb_u[c3_i103] = 0.0;\r\n  }\r\n\r\n  c3_db_y = NULL;\r\n  sf_mex_assign(&c3_db_y, sf_mex_create(\"y\", c3_eb_u, 0, 0U, 1U, 0U, 1, 2),\r\n                FALSE);\r\n  c3_fb_u = c3_b_maxiter;\r\n  c3_eb_y = NULL;\r\n  sf_mex_assign(&c3_eb_y, sf_mex_create(\"y\", &c3_fb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gb_u = c3_b_nxQP;\r\n  c3_fb_y = NULL;\r\n  sf_mex_assign(&c3_fb_y, sf_mex_create(\"y\", &c3_gb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hb_u = c3_b_openloopflag;\r\n  c3_gb_y = NULL;\r\n  sf_mex_assign(&c3_gb_y, sf_mex_create(\"y\", &c3_hb_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ib_u = c3_b_lims_inport;\r\n  c3_hb_y = NULL;\r\n  sf_mex_assign(&c3_hb_y, sf_mex_create(\"y\", &c3_ib_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jb_u = c3_b_no_umin;\r\n  c3_ib_y = NULL;\r\n  sf_mex_assign(&c3_ib_y, sf_mex_create(\"y\", &c3_jb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kb_u = c3_b_no_umax;\r\n  c3_jb_y = NULL;\r\n  sf_mex_assign(&c3_jb_y, sf_mex_create(\"y\", &c3_kb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lb_u = c3_b_no_ymin;\r\n  c3_kb_y = NULL;\r\n  sf_mex_assign(&c3_kb_y, sf_mex_create(\"y\", &c3_lb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mb_u = c3_b_no_ymax;\r\n  c3_lb_y = NULL;\r\n  sf_mex_assign(&c3_lb_y, sf_mex_create(\"y\", &c3_mb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nb_u = c3_b_switch_inport;\r\n  c3_mb_y = NULL;\r\n  sf_mex_assign(&c3_mb_y, sf_mex_create(\"y\", &c3_nb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ob_u = c3_b_no_switch;\r\n  c3_nb_y = NULL;\r\n  sf_mex_assign(&c3_nb_y, sf_mex_create(\"y\", &c3_ob_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_pb_u = c3_b_enable_value;\r\n  c3_ob_y = NULL;\r\n  sf_mex_assign(&c3_ob_y, sf_mex_create(\"y\", &c3_pb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_qb_u = c3_b_return_cost;\r\n  c3_pb_y = NULL;\r\n  sf_mex_assign(&c3_pb_y, sf_mex_create(\"y\", &c3_qb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i104 = 0; c3_i104 < 36; c3_i104++) {\r\n    c3_rb_u[c3_i104] = c3_d_H[c3_i104];\r\n  }\r\n\r\n  c3_qb_y = NULL;\r\n  sf_mex_assign(&c3_qb_y, sf_mex_create(\"y\", c3_rb_u, 0, 0U, 1U, 0U, 2, 6, 6),\r\n                FALSE);\r\n  c3_sb_u = c3_b_return_sequence;\r\n  c3_rb_y = NULL;\r\n  sf_mex_assign(&c3_rb_y, sf_mex_create(\"y\", &c3_sb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c3_i105 = 0; c3_i105 < 5; c3_i105++) {\r\n    c3_tb_u[c3_i105] = c3_d_blocking_moves[c3_i105];\r\n  }\r\n\r\n  c3_sb_y = NULL;\r\n  sf_mex_assign(&c3_sb_y, sf_mex_create(\"y\", c3_tb_u, 0, 0U, 1U, 0U, 2, 1, 5),\r\n                FALSE);\r\n  for (c3_i106 = 0; c3_i106 < 36; c3_i106++) {\r\n    c3_ub_u[c3_i106] = c3_d_Linv[c3_i106];\r\n  }\r\n\r\n  c3_tb_y = NULL;\r\n  sf_mex_assign(&c3_tb_y, sf_mex_create(\"y\", c3_ub_u, 0, 0U, 1U, 0U, 2, 6, 6),\r\n                FALSE);\r\n  for (c3_i107 = 0; c3_i107 < 6; c3_i107++) {\r\n    c3_vb_u[c3_i107] = 0.0;\r\n  }\r\n\r\n  c3_ub_y = NULL;\r\n  sf_mex_assign(&c3_ub_y, sf_mex_create(\"y\", c3_vb_u, 0, 0U, 1U, 0U, 2, 1, 6),\r\n                FALSE);\r\n  for (c3_i108 = 0; c3_i108 < 2; c3_i108++) {\r\n    c3_wb_u[c3_i108] = c3_ywt[c3_i108];\r\n  }\r\n\r\n  c3_vb_y = NULL;\r\n  sf_mex_assign(&c3_vb_y, sf_mex_create(\"y\", c3_wb_u, 0, 0U, 1U, 0U, 1, 2),\r\n                FALSE);\r\n  for (c3_i109 = 0; c3_i109 < 3; c3_i109++) {\r\n    c3_xb_u[c3_i109] = c3_duwt[c3_i109];\r\n  }\r\n\r\n  c3_wb_y = NULL;\r\n  sf_mex_assign(&c3_wb_y, sf_mex_create(\"y\", c3_xb_u, 0, 0U, 1U, 0U, 1, 3),\r\n                FALSE);\r\n  c3_yb_u = c3_rhoeps;\r\n  c3_xb_y = NULL;\r\n  sf_mex_assign(&c3_xb_y, sf_mex_create(\"y\", &c3_yb_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ac_u = c3_b_no_ywt;\r\n  c3_yb_y = NULL;\r\n  sf_mex_assign(&c3_yb_y, sf_mex_create(\"y\", &c3_ac_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_bc_u = c3_b_no_duwt;\r\n  c3_ac_y = NULL;\r\n  sf_mex_assign(&c3_ac_y, sf_mex_create(\"y\", &c3_bc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_cc_u = c3_b_no_rhoeps;\r\n  c3_bc_y = NULL;\r\n  sf_mex_assign(&c3_bc_y, sf_mex_create(\"y\", &c3_cc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_dc_u = c3_b_Wy;\r\n  c3_cc_y = NULL;\r\n  sf_mex_assign(&c3_cc_y, sf_mex_create(\"y\", &c3_dc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ec_u = c3_b_Wdu;\r\n  c3_dc_y = NULL;\r\n  sf_mex_assign(&c3_dc_y, sf_mex_create(\"y\", &c3_ec_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_fc_u = c3_b_Jm;\r\n  c3_ec_y = NULL;\r\n  sf_mex_assign(&c3_ec_y, sf_mex_create(\"y\", &c3_fc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_gc_u = c3_b_SuJm;\r\n  c3_fc_y = NULL;\r\n  sf_mex_assign(&c3_fc_y, sf_mex_create(\"y\", &c3_gc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_hc_u = c3_b_I2JmWuI2Jm;\r\n  c3_gc_y = NULL;\r\n  sf_mex_assign(&c3_gc_y, sf_mex_create(\"y\", &c3_hc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_ic_u = c3_b_Su1;\r\n  c3_hc_y = NULL;\r\n  sf_mex_assign(&c3_hc_y, sf_mex_create(\"y\", &c3_ic_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_jc_u = c3_b_I1WuI2Jm;\r\n  c3_ic_y = NULL;\r\n  sf_mex_assign(&c3_ic_y, sf_mex_create(\"y\", &c3_jc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_kc_u = c3_b_Sx;\r\n  c3_jc_y = NULL;\r\n  sf_mex_assign(&c3_jc_y, sf_mex_create(\"y\", &c3_kc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_lc_u = c3_b_Hv;\r\n  c3_kc_y = NULL;\r\n  sf_mex_assign(&c3_kc_y, sf_mex_create(\"y\", &c3_lc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_mc_u = c3_b_Wu;\r\n  c3_lc_y = NULL;\r\n  sf_mex_assign(&c3_lc_y, sf_mex_create(\"y\", &c3_mc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c3_nc_u = c3_b_I1;\r\n  c3_mc_y = NULL;\r\n  sf_mex_assign(&c3_mc_y, sf_mex_create(\"y\", &c3_nc_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_optimizer_double_mex\", 5U, 63U, 14, c3_y, 14,\r\n                    c3_b_y, 14, c3_c_y, 14, c3_d_y, 14, c3_e_y, 14, c3_f_y, 14,\r\n                    c3_g_y, 14, c3_h_y, 14, c3_i_y, 14, c3_j_y, 14, c3_k_y, 14,\r\n                    c3_l_y, 14, c3_m_y, 14, c3_n_y, 14, c3_o_y, 14, c3_p_y, 14,\r\n                    c3_q_y, 14, c3_r_y, 14, c3_s_y, 14, c3_t_y, 14, c3_u_y, 14,\r\n                    c3_v_y, 14, c3_w_y, 14, c3_x_y, 14, c3_y_y, 14, c3_ab_y, 14,\r\n                    c3_bb_y, 14, c3_cb_y, 14, c3_db_y, 14, c3_eb_y, 14, c3_fb_y,\r\n                    14, c3_gb_y, 14, c3_hb_y, 14, c3_ib_y, 14, c3_jb_y, 14,\r\n                    c3_kb_y, 14, c3_lb_y, 14, c3_mb_y, 14, c3_nb_y, 14, c3_ob_y,\r\n                    14, c3_pb_y, 14, c3_qb_y, 14, c3_rb_y, 14, c3_sb_y, 14,\r\n                    c3_tb_y, 14, c3_ub_y, 14, c3_vb_y, 14, c3_wb_y, 14, c3_xb_y,\r\n                    14, c3_yb_y, 14, c3_ac_y, 14, c3_bc_y, 14, c3_cc_y, 14,\r\n                    c3_dc_y, 14, c3_ec_y, 14, c3_fc_y, 14, c3_gc_y, 14, c3_hc_y,\r\n                    14, c3_ic_y, 14, c3_jc_y, 14, c3_kc_y, 14, c3_lc_y, 14,\r\n                    c3_mc_y, &c3_oc_u, &c3_b_cost, &c3_b_useq, &c3_b_status,\r\n                    &c3_b_iAout);\r\n  c3_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_oc_u), \"u\", c3_dv18);\r\n  for (c3_i110 = 0; c3_i110 < 3; c3_i110++) {\r\n    c3_u[c3_i110] = c3_dv18[c3_i110];\r\n  }\r\n\r\n  c3_cost = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_cost), \"cost\");\r\n  c3_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_useq), \"useq\", c3_dv19);\r\n  for (c3_i111 = 0; c3_i111 < 15; c3_i111++) {\r\n    c3_useq[c3_i111] = c3_dv19[c3_i111];\r\n  }\r\n\r\n  c3_status = c3_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_status),\r\n    \"status\");\r\n  c3_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_iAout), \"iAout\", c3_bv1);\r\n  for (c3_i112 = 0; c3_i112 < 7; c3_i112++) {\r\n    c3_iAout[c3_i112] = c3_bv1[c3_i112];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c3_sfEvent, -31);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c3_oc_u);\r\n  sf_mex_destroy(&c3_b_cost);\r\n  sf_mex_destroy(&c3_b_useq);\r\n  sf_mex_destroy(&c3_b_status);\r\n  sf_mex_destroy(&c3_b_iAout);\r\n  for (c3_i113 = 0; c3_i113 < 3; c3_i113++) {\r\n    (*c3_pc_u)[c3_i113] = c3_u[c3_i113];\r\n  }\r\n\r\n  *c3_c_cost = c3_cost;\r\n  for (c3_i114 = 0; c3_i114 < 15; c3_i114++) {\r\n    (*c3_c_useq)[c3_i114] = c3_useq[c3_i114];\r\n  }\r\n\r\n  *c3_c_status = c3_status;\r\n  for (c3_i115 = 0; c3_i115 < 7; c3_i115++) {\r\n    (*c3_c_iAout)[c3_i115] = c3_iAout[c3_i115];\r\n  }\r\n\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 0U, chartInstance->c3_sfEvent);\r\n}\r\n\r\nstatic void initSimStructsc3_mpclib(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c3_machineNumber, uint32_T\r\n  c3_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c3_sf_marshallOut(void *chartInstanceVoid, void *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i116;\r\n  boolean_T c3_b_inData[7];\r\n  int32_T c3_i117;\r\n  boolean_T c3_u[7];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i116 = 0; c3_i116 < 7; c3_i116++) {\r\n    c3_b_inData[c3_i116] = (*(boolean_T (*)[7])c3_inData)[c3_i116];\r\n  }\r\n\r\n  for (c3_i117 = 0; c3_i117 < 7; c3_i117++) {\r\n    c3_u[c3_i117] = c3_b_inData[c3_i117];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 11, 0U, 1U, 0U, 1, 7), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_iAout;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y[7];\r\n  int32_T c3_i118;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_iAout = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n  for (c3_i118 = 0; c3_i118 < 7; c3_i118++) {\r\n    (*(boolean_T (*)[7])c3_outData)[c3_i118] = c3_y[c3_i118];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  real_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(real_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_cost;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_cost = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_cost), &c3_thisId);\r\n  sf_mex_destroy(&c3_cost);\r\n  *(real_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i119;\r\n  int32_T c3_i120;\r\n  int32_T c3_i121;\r\n  real_T c3_b_inData[15];\r\n  int32_T c3_i122;\r\n  int32_T c3_i123;\r\n  int32_T c3_i124;\r\n  real_T c3_u[15];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i119 = 0;\r\n  for (c3_i120 = 0; c3_i120 < 3; c3_i120++) {\r\n    for (c3_i121 = 0; c3_i121 < 5; c3_i121++) {\r\n      c3_b_inData[c3_i121 + c3_i119] = (*(real_T (*)[15])c3_inData)[c3_i121 +\r\n        c3_i119];\r\n    }\r\n\r\n    c3_i119 += 5;\r\n  }\r\n\r\n  c3_i122 = 0;\r\n  for (c3_i123 = 0; c3_i123 < 3; c3_i123++) {\r\n    for (c3_i124 = 0; c3_i124 < 5; c3_i124++) {\r\n      c3_u[c3_i124 + c3_i122] = c3_b_inData[c3_i124 + c3_i122];\r\n    }\r\n\r\n    c3_i122 += 5;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 5, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_useq;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[15];\r\n  int32_T c3_i125;\r\n  int32_T c3_i126;\r\n  int32_T c3_i127;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_useq = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n  c3_i125 = 0;\r\n  for (c3_i126 = 0; c3_i126 < 3; c3_i126++) {\r\n    for (c3_i127 = 0; c3_i127 < 5; c3_i127++) {\r\n      (*(real_T (*)[15])c3_outData)[c3_i127 + c3_i125] = c3_y[c3_i127 + c3_i125];\r\n    }\r\n\r\n    c3_i125 += 5;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i128;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i129;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i128 = 0; c3_i128 < 3; c3_i128++) {\r\n    c3_b_inData[c3_i128] = (*(real_T (*)[3])c3_inData)[c3_i128];\r\n  }\r\n\r\n  for (c3_i129 = 0; c3_i129 < 3; c3_i129++) {\r\n    c3_u[c3_i129] = c3_b_inData[c3_i129];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic void c3_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_u;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i130;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_u = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_u);\r\n  for (c3_i130 = 0; c3_i130 < 3; c3_i130++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i130] = c3_y[c3_i130];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c3_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i131;\r\n  real_T c3_b_inData[2];\r\n  int32_T c3_i132;\r\n  real_T c3_u[2];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i131 = 0; c3_i131 < 2; c3_i131++) {\r\n    c3_b_inData[c3_i131] = (*(real_T (*)[2])c3_inData)[c3_i131];\r\n  }\r\n\r\n  for (c3_i132 = 0; c3_i132 < 2; c3_i132++) {\r\n    c3_u[c3_i132] = c3_b_inData[c3_i132];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i133;\r\n  real_T c3_b_inData[11];\r\n  int32_T c3_i134;\r\n  real_T c3_u[11];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i133 = 0; c3_i133 < 11; c3_i133++) {\r\n    c3_b_inData[c3_i133] = (*(real_T (*)[11])c3_inData)[c3_i133];\r\n  }\r\n\r\n  for (c3_i134 = 0; c3_i134 < 11; c3_i134++) {\r\n    c3_u[c3_i134] = c3_b_inData[c3_i134];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 11), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i135;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i136;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i135 = 0; c3_i135 < 6; c3_i135++) {\r\n    c3_b_inData[c3_i135] = (*(real_T (*)[6])c3_inData)[c3_i135];\r\n  }\r\n\r\n  for (c3_i136 = 0; c3_i136 < 6; c3_i136++) {\r\n    c3_u[c3_i136] = c3_b_inData[c3_i136];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_h_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i137;\r\n  real_T c3_b_inData[10];\r\n  int32_T c3_i138;\r\n  real_T c3_u[10];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i137 = 0; c3_i137 < 10; c3_i137++) {\r\n    c3_b_inData[c3_i137] = (*(real_T (*)[10])c3_inData)[c3_i137];\r\n  }\r\n\r\n  for (c3_i138 = 0; c3_i138 < 10; c3_i138++) {\r\n    c3_u[c3_i138] = c3_b_inData[c3_i138];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_i_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i139;\r\n  real_T c3_b_inData[6];\r\n  int32_T c3_i140;\r\n  real_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i139 = 0; c3_i139 < 6; c3_i139++) {\r\n    c3_b_inData[c3_i139] = (*(real_T (*)[6])c3_inData)[c3_i139];\r\n  }\r\n\r\n  for (c3_i140 = 0; c3_i140 < 6; c3_i140++) {\r\n    c3_u[c3_i140] = c3_b_inData[c3_i140];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_j_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i141;\r\n  int32_T c3_i142;\r\n  int32_T c3_i143;\r\n  real_T c3_b_inData[36];\r\n  int32_T c3_i144;\r\n  int32_T c3_i145;\r\n  int32_T c3_i146;\r\n  real_T c3_u[36];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i141 = 0;\r\n  for (c3_i142 = 0; c3_i142 < 6; c3_i142++) {\r\n    for (c3_i143 = 0; c3_i143 < 6; c3_i143++) {\r\n      c3_b_inData[c3_i143 + c3_i141] = (*(real_T (*)[36])c3_inData)[c3_i143 +\r\n        c3_i141];\r\n    }\r\n\r\n    c3_i141 += 6;\r\n  }\r\n\r\n  c3_i144 = 0;\r\n  for (c3_i145 = 0; c3_i145 < 6; c3_i145++) {\r\n    for (c3_i146 = 0; c3_i146 < 6; c3_i146++) {\r\n      c3_u[c3_i146 + c3_i144] = c3_b_inData[c3_i146 + c3_i144];\r\n    }\r\n\r\n    c3_i144 += 6;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 6, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_k_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i147;\r\n  real_T c3_b_inData[5];\r\n  int32_T c3_i148;\r\n  real_T c3_u[5];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i147 = 0; c3_i147 < 5; c3_i147++) {\r\n    c3_b_inData[c3_i147] = (*(real_T (*)[5])c3_inData)[c3_i147];\r\n  }\r\n\r\n  for (c3_i148 = 0; c3_i148 < 5; c3_i148++) {\r\n    c3_u[c3_i148] = c3_b_inData[c3_i148];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 5), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_l_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  boolean_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(boolean_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_m_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i149;\r\n  real_T c3_b_inData[15];\r\n  int32_T c3_i150;\r\n  real_T c3_u[15];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i149 = 0; c3_i149 < 15; c3_i149++) {\r\n    c3_b_inData[c3_i149] = (*(real_T (*)[15])c3_inData)[c3_i149];\r\n  }\r\n\r\n  for (c3_i150 = 0; c3_i150 < 15; c3_i150++) {\r\n    c3_u[c3_i150] = c3_b_inData[c3_i150];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 1, 15), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_n_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i151;\r\n  real_T c3_b_inData[3];\r\n  int32_T c3_i152;\r\n  real_T c3_u[3];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i151 = 0; c3_i151 < 3; c3_i151++) {\r\n    c3_b_inData[c3_i151] = (*(real_T (*)[3])c3_inData)[c3_i151];\r\n  }\r\n\r\n  for (c3_i152 = 0; c3_i152 < 3; c3_i152++) {\r\n    c3_u[c3_i152] = c3_b_inData[c3_i152];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 3), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_o_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i153;\r\n  real_T c3_b_inData[11];\r\n  int32_T c3_i154;\r\n  real_T c3_u[11];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i153 = 0; c3_i153 < 11; c3_i153++) {\r\n    c3_b_inData[c3_i153] = (*(real_T (*)[11])c3_inData)[c3_i153];\r\n  }\r\n\r\n  for (c3_i154 = 0; c3_i154 < 11; c3_i154++) {\r\n    c3_u[c3_i154] = c3_b_inData[c3_i154];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 1, 11), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_p_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i155;\r\n  int32_T c3_i156;\r\n  int32_T c3_i157;\r\n  real_T c3_b_inData[60];\r\n  int32_T c3_i158;\r\n  int32_T c3_i159;\r\n  int32_T c3_i160;\r\n  real_T c3_u[60];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i155 = 0;\r\n  for (c3_i156 = 0; c3_i156 < 6; c3_i156++) {\r\n    for (c3_i157 = 0; c3_i157 < 10; c3_i157++) {\r\n      c3_b_inData[c3_i157 + c3_i155] = (*(real_T (*)[60])c3_inData)[c3_i157 +\r\n        c3_i155];\r\n    }\r\n\r\n    c3_i155 += 10;\r\n  }\r\n\r\n  c3_i158 = 0;\r\n  for (c3_i159 = 0; c3_i159 < 6; c3_i159++) {\r\n    for (c3_i160 = 0; c3_i160 < 10; c3_i160++) {\r\n      c3_u[c3_i160 + c3_i158] = c3_b_inData[c3_i160 + c3_i158];\r\n    }\r\n\r\n    c3_i158 += 10;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 10, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_q_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i161;\r\n  int32_T c3_i162;\r\n  int32_T c3_i163;\r\n  real_T c3_b_inData[90];\r\n  int32_T c3_i164;\r\n  int32_T c3_i165;\r\n  int32_T c3_i166;\r\n  real_T c3_u[90];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i161 = 0;\r\n  for (c3_i162 = 0; c3_i162 < 6; c3_i162++) {\r\n    for (c3_i163 = 0; c3_i163 < 15; c3_i163++) {\r\n      c3_b_inData[c3_i163 + c3_i161] = (*(real_T (*)[90])c3_inData)[c3_i163 +\r\n        c3_i161];\r\n    }\r\n\r\n    c3_i161 += 15;\r\n  }\r\n\r\n  c3_i164 = 0;\r\n  for (c3_i165 = 0; c3_i165 < 6; c3_i165++) {\r\n    for (c3_i166 = 0; c3_i166 < 15; c3_i166++) {\r\n      c3_u[c3_i166 + c3_i164] = c3_b_inData[c3_i166 + c3_i164];\r\n    }\r\n\r\n    c3_i164 += 15;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 15, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_r_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i167;\r\n  int32_T c3_i168;\r\n  int32_T c3_i169;\r\n  real_T c3_b_inData[18];\r\n  int32_T c3_i170;\r\n  int32_T c3_i171;\r\n  int32_T c3_i172;\r\n  real_T c3_u[18];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i167 = 0;\r\n  for (c3_i168 = 0; c3_i168 < 6; c3_i168++) {\r\n    for (c3_i169 = 0; c3_i169 < 3; c3_i169++) {\r\n      c3_b_inData[c3_i169 + c3_i167] = (*(real_T (*)[18])c3_inData)[c3_i169 +\r\n        c3_i167];\r\n    }\r\n\r\n    c3_i167 += 3;\r\n  }\r\n\r\n  c3_i170 = 0;\r\n  for (c3_i171 = 0; c3_i171 < 6; c3_i171++) {\r\n    for (c3_i172 = 0; c3_i172 < 3; c3_i172++) {\r\n      c3_u[c3_i172 + c3_i170] = c3_b_inData[c3_i172 + c3_i170];\r\n    }\r\n\r\n    c3_i170 += 3;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 3, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_s_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i173;\r\n  int32_T c3_i174;\r\n  int32_T c3_i175;\r\n  real_T c3_b_inData[66];\r\n  int32_T c3_i176;\r\n  int32_T c3_i177;\r\n  int32_T c3_i178;\r\n  real_T c3_u[66];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_i173 = 0;\r\n  for (c3_i174 = 0; c3_i174 < 6; c3_i174++) {\r\n    for (c3_i175 = 0; c3_i175 < 11; c3_i175++) {\r\n      c3_b_inData[c3_i175 + c3_i173] = (*(real_T (*)[66])c3_inData)[c3_i175 +\r\n        c3_i173];\r\n    }\r\n\r\n    c3_i173 += 11;\r\n  }\r\n\r\n  c3_i176 = 0;\r\n  for (c3_i177 = 0; c3_i177 < 6; c3_i177++) {\r\n    for (c3_i178 = 0; c3_i178 < 11; c3_i178++) {\r\n      c3_u[c3_i178 + c3_i176] = c3_b_inData[c3_i178 + c3_i176];\r\n    }\r\n\r\n    c3_i176 += 11;\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 0, 0U, 1U, 0U, 2, 11, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c3_t_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_i179;\r\n  char_T c3_b_inData[6];\r\n  int32_T c3_i180;\r\n  char_T c3_u[6];\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  for (c3_i179 = 0; c3_i179 < 6; c3_i179++) {\r\n    c3_b_inData[c3_i179] = (*(char_T (*)[6])c3_inData)[c3_i179];\r\n  }\r\n\r\n  for (c3_i180 = 0; c3_i180 < 6; c3_i180++) {\r\n    c3_u[c3_i180] = c3_b_inData[c3_i180];\r\n  }\r\n\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", c3_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c3_nameCaptureInfo = NULL;\r\n  c3_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c3_nameCaptureInfo, sf_mex_create(\"nameCaptureInfo\", NULL, 0,\r\n    0U, 1U, 0U, 2, 0, 1), FALSE);\r\n  return c3_nameCaptureInfo;\r\n}\r\n\r\nstatic void c3_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c3_u, const char_T *c3_identifier, real_T c3_y[3])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_u), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_b_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv20[3];\r\n  int32_T c3_i181;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv20, 1, 0, 0U, 1, 0U, 1, 3);\r\n  for (c3_i181 = 0; c3_i181 < 3; c3_i181++) {\r\n    c3_y[c3_i181] = c3_dv20[c3_i181];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic real_T c3_c_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_cost, const char_T *c3_identifier)\r\n{\r\n  real_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_cost), &c3_thisId);\r\n  sf_mex_destroy(&c3_cost);\r\n  return c3_y;\r\n}\r\n\r\nstatic real_T c3_d_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  real_T c3_y;\r\n  real_T c3_d34;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_d34, 1, 0, 0U, 0, 0U, 0);\r\n  c3_y = c3_d34;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_useq, const char_T *c3_identifier, real_T c3_y[15])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_useq), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_useq);\r\n}\r\n\r\nstatic void c3_f_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15])\r\n{\r\n  real_T c3_dv21[15];\r\n  int32_T c3_i182;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv21, 1, 0, 0U, 1, 0U, 2, 5, 3);\r\n  for (c3_i182 = 0; c3_i182 < 15; c3_i182++) {\r\n    c3_y[c3_i182] = c3_dv21[c3_i182];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_iAout, const char_T *c3_identifier, boolean_T c3_y[7])\r\n{\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_iAout), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_iAout);\r\n}\r\n\r\nstatic void c3_h_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, boolean_T c3_y[7])\r\n{\r\n  boolean_T c3_bv2[7];\r\n  int32_T c3_i183;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_bv2, 1, 11, 0U, 1, 0U, 1, 7);\r\n  for (c3_i183 = 0; c3_i183 < 7; c3_i183++) {\r\n    c3_y[c3_i183] = c3_bv2[c3_i183];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic const mxArray *c3_u_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c3_inData)\r\n{\r\n  const mxArray *c3_mxArrayOutData = NULL;\r\n  int32_T c3_u;\r\n  const mxArray *c3_y = NULL;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_mxArrayOutData = NULL;\r\n  c3_u = *(int32_T *)c3_inData;\r\n  c3_y = NULL;\r\n  sf_mex_assign(&c3_y, sf_mex_create(\"y\", &c3_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c3_mxArrayOutData, c3_y, FALSE);\r\n  return c3_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c3_i_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  int32_T c3_y;\r\n  int32_T c3_i184;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_i184, 1, 6, 0U, 0, 0U, 0);\r\n  c3_y = c3_i184;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_b_sfEvent;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  int32_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_b_sfEvent = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_b_sfEvent),\r\n    &c3_thisId);\r\n  sf_mex_destroy(&c3_b_sfEvent);\r\n  *(int32_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c3_j_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  boolean_T c3_y;\r\n  boolean_T c3_b0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c3_y = c3_b0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void c3_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_isQP;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  boolean_T c3_y;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_isQP = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_j_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_isQP), &c3_thisId);\r\n  sf_mex_destroy(&c3_c_isQP);\r\n  *(boolean_T *)c3_outData = c3_y;\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_k_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[36])\r\n{\r\n  real_T c3_dv22[36];\r\n  int32_T c3_i185;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv22, 1, 0, 0U, 1, 0U, 2, 6, 6);\r\n  for (c3_i185 = 0; c3_i185 < 36; c3_i185++) {\r\n    c3_y[c3_i185] = c3_dv22[c3_i185];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_g_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Hinv;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[36];\r\n  int32_T c3_i186;\r\n  int32_T c3_i187;\r\n  int32_T c3_i188;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Hinv = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_k_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Hinv), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Hinv);\r\n  c3_i186 = 0;\r\n  for (c3_i187 = 0; c3_i187 < 6; c3_i187++) {\r\n    for (c3_i188 = 0; c3_i188 < 6; c3_i188++) {\r\n      (*(real_T (*)[36])c3_outData)[c3_i188 + c3_i186] = c3_y[c3_i188 + c3_i186];\r\n    }\r\n\r\n    c3_i186 += 6;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_l_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[66])\r\n{\r\n  real_T c3_dv23[66];\r\n  int32_T c3_i189;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv23, 1, 0, 0U, 1, 0U, 2, 11,\r\n                6);\r\n  for (c3_i189 = 0; c3_i189 < 66; c3_i189++) {\r\n    c3_y[c3_i189] = c3_dv23[c3_i189];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_h_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[66];\r\n  int32_T c3_i190;\r\n  int32_T c3_i191;\r\n  int32_T c3_i192;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_l_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kx);\r\n  c3_i190 = 0;\r\n  for (c3_i191 = 0; c3_i191 < 6; c3_i191++) {\r\n    for (c3_i192 = 0; c3_i192 < 11; c3_i192++) {\r\n      (*(real_T (*)[66])c3_outData)[c3_i192 + c3_i190] = c3_y[c3_i192 + c3_i190];\r\n    }\r\n\r\n    c3_i190 += 11;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_m_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[18])\r\n{\r\n  real_T c3_dv24[18];\r\n  int32_T c3_i193;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv24, 1, 0, 0U, 1, 0U, 2, 3, 6);\r\n  for (c3_i193 = 0; c3_i193 < 18; c3_i193++) {\r\n    c3_y[c3_i193] = c3_dv24[c3_i193];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_i_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ku1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[18];\r\n  int32_T c3_i194;\r\n  int32_T c3_i195;\r\n  int32_T c3_i196;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ku1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_m_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ku1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ku1);\r\n  c3_i194 = 0;\r\n  for (c3_i195 = 0; c3_i195 < 6; c3_i195++) {\r\n    for (c3_i196 = 0; c3_i196 < 3; c3_i196++) {\r\n      (*(real_T (*)[18])c3_outData)[c3_i196 + c3_i194] = c3_y[c3_i196 + c3_i194];\r\n    }\r\n\r\n    c3_i194 += 3;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_n_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[90])\r\n{\r\n  real_T c3_dv25[90];\r\n  int32_T c3_i197;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv25, 1, 0, 0U, 1, 0U, 2, 15,\r\n                6);\r\n  for (c3_i197 = 0; c3_i197 < 90; c3_i197++) {\r\n    c3_y[c3_i197] = c3_dv25[c3_i197];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_j_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kut;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[90];\r\n  int32_T c3_i198;\r\n  int32_T c3_i199;\r\n  int32_T c3_i200;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kut = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_n_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kut), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kut);\r\n  c3_i198 = 0;\r\n  for (c3_i199 = 0; c3_i199 < 6; c3_i199++) {\r\n    for (c3_i200 = 0; c3_i200 < 15; c3_i200++) {\r\n      (*(real_T (*)[90])c3_outData)[c3_i200 + c3_i198] = c3_y[c3_i200 + c3_i198];\r\n    }\r\n\r\n    c3_i198 += 15;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_o_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[60])\r\n{\r\n  real_T c3_dv26[60];\r\n  int32_T c3_i201;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv26, 1, 0, 0U, 1, 0U, 2, 10,\r\n                6);\r\n  for (c3_i201 = 0; c3_i201 < 60; c3_i201++) {\r\n    c3_y[c3_i201] = c3_dv26[c3_i201];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_k_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Kr;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[60];\r\n  int32_T c3_i202;\r\n  int32_T c3_i203;\r\n  int32_T c3_i204;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Kr = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_o_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Kr), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Kr);\r\n  c3_i202 = 0;\r\n  for (c3_i203 = 0; c3_i203 < 6; c3_i203++) {\r\n    for (c3_i204 = 0; c3_i204 < 10; c3_i204++) {\r\n      (*(real_T (*)[60])c3_outData)[c3_i204 + c3_i202] = c3_y[c3_i204 + c3_i202];\r\n    }\r\n\r\n    c3_i202 += 10;\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_p_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[11])\r\n{\r\n  real_T c3_dv27[11];\r\n  int32_T c3_i205;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv27, 1, 0, 0U, 1, 0U, 2, 1,\r\n                11);\r\n  for (c3_i205 = 0; c3_i205 < 11; c3_i205++) {\r\n    c3_y[c3_i205] = c3_dv27[c3_i205];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_l_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mx;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[11];\r\n  int32_T c3_i206;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mx = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_p_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mx), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mx);\r\n  for (c3_i206 = 0; c3_i206 < 11; c3_i206++) {\r\n    (*(real_T (*)[11])c3_outData)[c3_i206] = c3_y[c3_i206];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_q_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[3])\r\n{\r\n  real_T c3_dv28[3];\r\n  int32_T c3_i207;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv28, 1, 0, 0U, 1, 0U, 2, 1, 3);\r\n  for (c3_i207 = 0; c3_i207 < 3; c3_i207++) {\r\n    c3_y[c3_i207] = c3_dv28[c3_i207];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_m_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Mu1;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[3];\r\n  int32_T c3_i208;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Mu1 = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_q_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Mu1), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Mu1);\r\n  for (c3_i208 = 0; c3_i208 < 3; c3_i208++) {\r\n    (*(real_T (*)[3])c3_outData)[c3_i208] = c3_y[c3_i208];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_r_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6])\r\n{\r\n  real_T c3_dv29[6];\r\n  int32_T c3_i209;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv29, 1, 0, 0U, 1, 0U, 1, 6);\r\n  for (c3_i209 = 0; c3_i209 < 6; c3_i209++) {\r\n    c3_y[c3_i209] = c3_dv29[c3_i209];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_n_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_z_degrees;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[6];\r\n  int32_T c3_i210;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_z_degrees = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_r_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_z_degrees), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_z_degrees);\r\n  for (c3_i210 = 0; c3_i210 < 6; c3_i210++) {\r\n    (*(real_T (*)[6])c3_outData)[c3_i210] = c3_y[c3_i210];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_s_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[15])\r\n{\r\n  real_T c3_dv30[15];\r\n  int32_T c3_i211;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv30, 1, 0, 0U, 1, 0U, 1, 15);\r\n  for (c3_i211 = 0; c3_i211 < 15; c3_i211++) {\r\n    c3_y[c3_i211] = c3_dv30[c3_i211];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_o_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_utarget;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[15];\r\n  int32_T c3_i212;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_utarget = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_s_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_utarget), &c3_thisId,\r\n                        c3_y);\r\n  sf_mex_destroy(&c3_c_utarget);\r\n  for (c3_i212 = 0; c3_i212 < 15; c3_i212++) {\r\n    (*(real_T (*)[15])c3_outData)[c3_i212] = c3_y[c3_i212];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_t_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[2])\r\n{\r\n  real_T c3_dv31[2];\r\n  int32_T c3_i213;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv31, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c3_i213 = 0; c3_i213 < 2; c3_i213++) {\r\n    c3_y[c3_i213] = c3_dv31[c3_i213];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_p_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_yoff;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[2];\r\n  int32_T c3_i214;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_yoff = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_t_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_yoff), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_yoff);\r\n  for (c3_i214 = 0; c3_i214 < 2; c3_i214++) {\r\n    (*(real_T (*)[2])c3_outData)[c3_i214] = c3_y[c3_i214];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_u_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[5])\r\n{\r\n  real_T c3_dv32[5];\r\n  int32_T c3_i215;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv32, 1, 0, 0U, 1, 0U, 2, 1, 5);\r\n  for (c3_i215 = 0; c3_i215 < 5; c3_i215++) {\r\n    c3_y[c3_i215] = c3_dv32[c3_i215];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_q_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_blocking_moves;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[5];\r\n  int32_T c3_i216;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_blocking_moves = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_u_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_blocking_moves),\r\n                        &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_blocking_moves);\r\n  for (c3_i216 = 0; c3_i216 < 5; c3_i216++) {\r\n    (*(real_T (*)[5])c3_outData)[c3_i216] = c3_y[c3_i216];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic void c3_v_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId, real_T c3_y[6])\r\n{\r\n  real_T c3_dv33[6];\r\n  int32_T c3_i217;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), c3_dv33, 1, 0, 0U, 1, 0U, 2, 1, 6);\r\n  for (c3_i217 = 0; c3_i217 < 6; c3_i217++) {\r\n    c3_y[c3_i217] = c3_dv33[c3_i217];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_u);\r\n}\r\n\r\nstatic void c3_r_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c3_mxArrayInData, const char_T *c3_varName, void *c3_outData)\r\n{\r\n  const mxArray *c3_c_Ac;\r\n  const char_T *c3_identifier;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  real_T c3_y[6];\r\n  int32_T c3_i218;\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c3_c_Ac = sf_mex_dup(c3_mxArrayInData);\r\n  c3_identifier = c3_varName;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_v_emlrt_marshallIn(chartInstance, sf_mex_dup(c3_c_Ac), &c3_thisId, c3_y);\r\n  sf_mex_destroy(&c3_c_Ac);\r\n  for (c3_i218 = 0; c3_i218 < 6; c3_i218++) {\r\n    (*(real_T (*)[6])c3_outData)[c3_i218] = c3_y[c3_i218];\r\n  }\r\n\r\n  sf_mex_destroy(&c3_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c3_w_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_b_is_active_c3_mpclib, const char_T *c3_identifier)\r\n{\r\n  uint8_T c3_y;\r\n  emlrtMsgIdentifier c3_thisId;\r\n  c3_thisId.fIdentifier = c3_identifier;\r\n  c3_thisId.fParent = NULL;\r\n  c3_y = c3_x_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c3_b_is_active_c3_mpclib), &c3_thisId);\r\n  sf_mex_destroy(&c3_b_is_active_c3_mpclib);\r\n  return c3_y;\r\n}\r\n\r\nstatic uint8_T c3_x_emlrt_marshallIn(SFc3_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c3_u, const emlrtMsgIdentifier *c3_parentId)\r\n{\r\n  uint8_T c3_y;\r\n  uint8_T c3_u0;\r\n  sf_mex_import(c3_parentId, sf_mex_dup(c3_u), &c3_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c3_y = c3_u0;\r\n  sf_mex_destroy(&c3_u);\r\n  return c3_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc3_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c3_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(600020008U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(2410528527U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1516150950U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(2046671552U);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"j6VEDD3XqIorodiPjwvoYF\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,13,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(11);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,50,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,8,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,8,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,8,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,9,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,9,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,9,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(15);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,10,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,10,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,10,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,11,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,11,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,11,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(11);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,12,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,12,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,12,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(6);\r\n      mxSetField(mxData,13,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,13,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,13,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,14,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,14,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,14,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,15,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,15,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,15,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,16,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,16,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,16,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(11);\r\n      mxSetField(mxData,17,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,17,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,17,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,18,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,18,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,18,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,19,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,19,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,19,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,20,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,20,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,20,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,21,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,21,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,21,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,22,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,22,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,22,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,23,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,23,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,23,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(5);\r\n      mxSetField(mxData,24,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,24,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,24,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,25,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,25,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,25,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,26,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,26,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,26,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,27,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,27,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,27,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,28,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,28,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,28,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,29,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,29,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,29,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,30,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,30,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,30,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,31,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,31,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,31,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,32,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,32,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,32,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,33,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,33,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,33,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,34,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,34,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,34,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,35,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,35,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,35,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,36,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,36,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,36,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,37,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,37,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,37,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,38,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,38,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,38,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,39,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,39,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,39,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,40,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,40,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,40,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,41,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,41,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,41,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,42,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,42,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,42,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,43,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,43,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,43,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,44,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,44,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,44,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,45,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,45,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,45,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,46,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,46,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,46,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(15);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,47,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,47,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,47,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,48,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,48,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,48,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,49,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,49,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,49,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,5,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(3);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(5);\r\n      pr[1] = (double)(3);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(7);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c3_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c3_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x6'type','srcId','name','auxInfo'{{M[1],M[20],T\\\"cost\\\",},{M[1],M[145],T\\\"iAout\\\",},{M[1],M[126],T\\\"status\\\",},{M[1],M[19],T\\\"u\\\",},{M[1],M[21],T\\\"useq\\\",},{M[8],M[0],T\\\"is_active_c3_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 6, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c3_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc3_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc3_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           3,\r\n           1,\r\n           1,\r\n           68,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,1,1,0,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,1,1,0,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"x\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"old_u\");\r\n          _SFD_SET_DATA_PROPS(4,1,1,0,\"iA\");\r\n          _SFD_SET_DATA_PROPS(5,1,1,0,\"umin\");\r\n          _SFD_SET_DATA_PROPS(6,1,1,0,\"umax\");\r\n          _SFD_SET_DATA_PROPS(7,1,1,0,\"ymin\");\r\n          _SFD_SET_DATA_PROPS(8,1,1,0,\"ymax\");\r\n          _SFD_SET_DATA_PROPS(9,1,1,0,\"switch_in\");\r\n          _SFD_SET_DATA_PROPS(10,1,1,0,\"ywt\");\r\n          _SFD_SET_DATA_PROPS(11,1,1,0,\"duwt\");\r\n          _SFD_SET_DATA_PROPS(12,1,1,0,\"rhoeps\");\r\n          _SFD_SET_DATA_PROPS(13,2,0,1,\"u\");\r\n          _SFD_SET_DATA_PROPS(14,2,0,1,\"cost\");\r\n          _SFD_SET_DATA_PROPS(15,2,0,1,\"useq\");\r\n          _SFD_SET_DATA_PROPS(16,2,0,1,\"status\");\r\n          _SFD_SET_DATA_PROPS(17,10,0,0,\"isQP\");\r\n          _SFD_SET_DATA_PROPS(18,10,0,0,\"nu\");\r\n          _SFD_SET_DATA_PROPS(19,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(20,10,0,0,\"degrees\");\r\n          _SFD_SET_DATA_PROPS(21,10,0,0,\"Hinv\");\r\n          _SFD_SET_DATA_PROPS(22,10,0,0,\"Kx\");\r\n          _SFD_SET_DATA_PROPS(23,10,0,0,\"Ku1\");\r\n          _SFD_SET_DATA_PROPS(24,10,0,0,\"Kut\");\r\n          _SFD_SET_DATA_PROPS(25,10,0,0,\"Kr\");\r\n          _SFD_SET_DATA_PROPS(26,10,0,0,\"Kv\");\r\n          _SFD_SET_DATA_PROPS(27,10,0,0,\"Mlim\");\r\n          _SFD_SET_DATA_PROPS(28,10,0,0,\"Mx\");\r\n          _SFD_SET_DATA_PROPS(29,10,0,0,\"Mu1\");\r\n          _SFD_SET_DATA_PROPS(30,10,0,0,\"Mv\");\r\n          _SFD_SET_DATA_PROPS(31,10,0,0,\"z_degrees\");\r\n          _SFD_SET_DATA_PROPS(32,10,0,0,\"utarget\");\r\n          _SFD_SET_DATA_PROPS(33,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(34,10,0,0,\"uoff\");\r\n          _SFD_SET_DATA_PROPS(35,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(36,10,0,0,\"maxiter\");\r\n          _SFD_SET_DATA_PROPS(37,10,0,0,\"nxQP\");\r\n          _SFD_SET_DATA_PROPS(38,10,0,0,\"openloopflag\");\r\n          _SFD_SET_DATA_PROPS(39,10,0,0,\"lims_inport\");\r\n          _SFD_SET_DATA_PROPS(40,10,0,0,\"no_umin\");\r\n          _SFD_SET_DATA_PROPS(41,10,0,0,\"no_umax\");\r\n          _SFD_SET_DATA_PROPS(42,10,0,0,\"no_ymin\");\r\n          _SFD_SET_DATA_PROPS(43,10,0,0,\"no_ymax\");\r\n          _SFD_SET_DATA_PROPS(44,10,0,0,\"switch_inport\");\r\n          _SFD_SET_DATA_PROPS(45,10,0,0,\"no_switch\");\r\n          _SFD_SET_DATA_PROPS(46,10,0,0,\"enable_value\");\r\n          _SFD_SET_DATA_PROPS(47,10,0,0,\"return_cost\");\r\n          _SFD_SET_DATA_PROPS(48,10,0,0,\"H\");\r\n          _SFD_SET_DATA_PROPS(49,10,0,0,\"return_sequence\");\r\n          _SFD_SET_DATA_PROPS(50,10,0,0,\"blocking_moves\");\r\n          _SFD_SET_DATA_PROPS(51,10,0,0,\"Linv\");\r\n          _SFD_SET_DATA_PROPS(52,10,0,0,\"Ac\");\r\n          _SFD_SET_DATA_PROPS(53,10,0,0,\"no_ywt\");\r\n          _SFD_SET_DATA_PROPS(54,10,0,0,\"no_duwt\");\r\n          _SFD_SET_DATA_PROPS(55,10,0,0,\"no_rhoeps\");\r\n          _SFD_SET_DATA_PROPS(56,10,0,0,\"Wy\");\r\n          _SFD_SET_DATA_PROPS(57,10,0,0,\"Wdu\");\r\n          _SFD_SET_DATA_PROPS(58,10,0,0,\"Jm\");\r\n          _SFD_SET_DATA_PROPS(59,10,0,0,\"SuJm\");\r\n          _SFD_SET_DATA_PROPS(60,10,0,0,\"I2JmWuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(61,10,0,0,\"Su1\");\r\n          _SFD_SET_DATA_PROPS(62,10,0,0,\"I1WuI2Jm\");\r\n          _SFD_SET_DATA_PROPS(63,10,0,0,\"Sx\");\r\n          _SFD_SET_DATA_PROPS(64,10,0,0,\"Hv\");\r\n          _SFD_SET_DATA_PROPS(65,10,0,0,\"Wu\");\r\n          _SFD_SET_DATA_PROPS(66,10,0,0,\"I1\");\r\n          _SFD_SET_DATA_PROPS(67,2,0,1,\"iAout\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,2551);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,648,679,2012,2550);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,966,987,1495,2010);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_h_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 11;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_f_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(4,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)NULL);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(13,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)\r\n            c3_d_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(14,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 5;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(15,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_c_sf_marshallOut,(MexInFcnForType)\r\n            c3_c_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(16,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(17,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)c3_f_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(18,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(19,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(20,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(21,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 11;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(22,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_s_sf_marshallOut,(MexInFcnForType)\r\n            c3_h_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 3;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(23,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_r_sf_marshallOut,(MexInFcnForType)\r\n            c3_i_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 15;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(24,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_q_sf_marshallOut,(MexInFcnForType)\r\n            c3_j_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 10;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(25,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_p_sf_marshallOut,(MexInFcnForType)\r\n            c3_k_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(26,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(27,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 11;\r\n          _SFD_SET_DATA_COMPILED_PROPS(28,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_o_sf_marshallOut,(MexInFcnForType)\r\n            c3_l_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(29,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_n_sf_marshallOut,(MexInFcnForType)\r\n            c3_m_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(30,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(31,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_g_sf_marshallOut,(MexInFcnForType)\r\n            c3_n_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 15;\r\n          _SFD_SET_DATA_COMPILED_PROPS(32,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_m_sf_marshallOut,(MexInFcnForType)\r\n            c3_o_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(33,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 3;\r\n          _SFD_SET_DATA_COMPILED_PROPS(34,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_d_sf_marshallOut,(MexInFcnForType)\r\n            c3_d_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(35,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_e_sf_marshallOut,(MexInFcnForType)\r\n            c3_p_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(36,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(37,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(38,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_l_sf_marshallOut,(MexInFcnForType)c3_f_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(39,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(40,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(41,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(42,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(43,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(44,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(45,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(46,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(47,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(48,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(49,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 5;\r\n          _SFD_SET_DATA_COMPILED_PROPS(50,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_k_sf_marshallOut,(MexInFcnForType)\r\n            c3_q_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 6;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(51,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_j_sf_marshallOut,(MexInFcnForType)\r\n            c3_g_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[2];\r\n          dimVector[0]= 1;\r\n          dimVector[1]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(52,SF_DOUBLE,2,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_i_sf_marshallOut,(MexInFcnForType)\r\n            c3_r_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(53,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(54,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(55,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(56,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(57,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(58,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(59,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(60,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(61,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(62,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(63,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(64,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(65,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(66,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c3_b_sf_marshallOut,(MexInFcnForType)c3_b_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 7;\r\n          _SFD_SET_DATA_COMPILED_PROPS(67,SF_UINT8,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c3_sf_marshallOut,(MexInFcnForType)\r\n            c3_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          real_T *c3_switch_in;\r\n          real_T *c3_rhoeps;\r\n          real_T *c3_cost;\r\n          real_T *c3_status;\r\n          real_T (*c3_rseq)[10];\r\n          real_T (*c3_vseq)[6];\r\n          real_T (*c3_x)[11];\r\n          real_T (*c3_old_u)[3];\r\n          boolean_T (*c3_iA)[7];\r\n          real_T (*c3_umin)[3];\r\n          real_T (*c3_umax)[3];\r\n          real_T (*c3_ymin)[2];\r\n          real_T (*c3_ymax)[2];\r\n          real_T (*c3_ywt)[2];\r\n          real_T (*c3_duwt)[3];\r\n          real_T (*c3_u)[3];\r\n          real_T (*c3_useq)[15];\r\n          boolean_T (*c3_iAout)[7];\r\n          c3_iAout = (boolean_T (*)[7])ssGetOutputPortSignal(chartInstance->S, 5);\r\n          c3_status = (real_T *)ssGetOutputPortSignal(chartInstance->S, 4);\r\n          c3_useq = (real_T (*)[15])ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c3_cost = (real_T *)ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c3_u = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          c3_rhoeps = (real_T *)ssGetInputPortSignal(chartInstance->S, 12);\r\n          c3_duwt = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 11);\r\n          c3_ywt = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 10);\r\n          c3_switch_in = (real_T *)ssGetInputPortSignal(chartInstance->S, 9);\r\n          c3_ymax = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 8);\r\n          c3_ymin = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 7);\r\n          c3_umax = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 6);\r\n          c3_umin = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 5);\r\n          c3_iA = (boolean_T (*)[7])ssGetInputPortSignal(chartInstance->S, 4);\r\n          c3_old_u = (real_T (*)[3])ssGetInputPortSignal(chartInstance->S, 3);\r\n          c3_x = (real_T (*)[11])ssGetInputPortSignal(chartInstance->S, 2);\r\n          c3_vseq = (real_T (*)[6])ssGetInputPortSignal(chartInstance->S, 1);\r\n          c3_rseq = (real_T (*)[10])ssGetInputPortSignal(chartInstance->S, 0);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c3_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c3_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c3_x);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, *c3_old_u);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, *c3_iA);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, *c3_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, *c3_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, *c3_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, *c3_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, c3_switch_in);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, *c3_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, *c3_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, c3_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(13U, *c3_u);\r\n          _SFD_SET_DATA_VALUE_PTR(14U, c3_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(15U, *c3_useq);\r\n          _SFD_SET_DATA_VALUE_PTR(16U, c3_status);\r\n          _SFD_SET_DATA_VALUE_PTR(17U, &chartInstance->c3_isQP);\r\n          _SFD_SET_DATA_VALUE_PTR(18U, &chartInstance->c3_nu);\r\n          _SFD_SET_DATA_VALUE_PTR(19U, &chartInstance->c3_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(20U, &chartInstance->c3_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(21U, chartInstance->c3_Hinv);\r\n          _SFD_SET_DATA_VALUE_PTR(22U, chartInstance->c3_Kx);\r\n          _SFD_SET_DATA_VALUE_PTR(23U, chartInstance->c3_Ku1);\r\n          _SFD_SET_DATA_VALUE_PTR(24U, chartInstance->c3_Kut);\r\n          _SFD_SET_DATA_VALUE_PTR(25U, chartInstance->c3_Kr);\r\n          _SFD_SET_DATA_VALUE_PTR(26U, chartInstance->c3_Kv);\r\n          _SFD_SET_DATA_VALUE_PTR(27U, &chartInstance->c3_Mlim);\r\n          _SFD_SET_DATA_VALUE_PTR(28U, chartInstance->c3_Mx);\r\n          _SFD_SET_DATA_VALUE_PTR(29U, chartInstance->c3_Mu1);\r\n          _SFD_SET_DATA_VALUE_PTR(30U, &chartInstance->c3_Mv);\r\n          _SFD_SET_DATA_VALUE_PTR(31U, chartInstance->c3_z_degrees);\r\n          _SFD_SET_DATA_VALUE_PTR(32U, chartInstance->c3_utarget);\r\n          _SFD_SET_DATA_VALUE_PTR(33U, &chartInstance->c3_p);\r\n          _SFD_SET_DATA_VALUE_PTR(34U, chartInstance->c3_uoff);\r\n          _SFD_SET_DATA_VALUE_PTR(35U, chartInstance->c3_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(36U, &chartInstance->c3_maxiter);\r\n          _SFD_SET_DATA_VALUE_PTR(37U, &chartInstance->c3_nxQP);\r\n          _SFD_SET_DATA_VALUE_PTR(38U, &chartInstance->c3_openloopflag);\r\n          _SFD_SET_DATA_VALUE_PTR(39U, &chartInstance->c3_lims_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(40U, &chartInstance->c3_no_umin);\r\n          _SFD_SET_DATA_VALUE_PTR(41U, &chartInstance->c3_no_umax);\r\n          _SFD_SET_DATA_VALUE_PTR(42U, &chartInstance->c3_no_ymin);\r\n          _SFD_SET_DATA_VALUE_PTR(43U, &chartInstance->c3_no_ymax);\r\n          _SFD_SET_DATA_VALUE_PTR(44U, &chartInstance->c3_switch_inport);\r\n          _SFD_SET_DATA_VALUE_PTR(45U, &chartInstance->c3_no_switch);\r\n          _SFD_SET_DATA_VALUE_PTR(46U, &chartInstance->c3_enable_value);\r\n          _SFD_SET_DATA_VALUE_PTR(47U, &chartInstance->c3_return_cost);\r\n          _SFD_SET_DATA_VALUE_PTR(48U, chartInstance->c3_H);\r\n          _SFD_SET_DATA_VALUE_PTR(49U, &chartInstance->c3_return_sequence);\r\n          _SFD_SET_DATA_VALUE_PTR(50U, chartInstance->c3_blocking_moves);\r\n          _SFD_SET_DATA_VALUE_PTR(51U, chartInstance->c3_Linv);\r\n          _SFD_SET_DATA_VALUE_PTR(52U, chartInstance->c3_Ac);\r\n          _SFD_SET_DATA_VALUE_PTR(53U, &chartInstance->c3_no_ywt);\r\n          _SFD_SET_DATA_VALUE_PTR(54U, &chartInstance->c3_no_duwt);\r\n          _SFD_SET_DATA_VALUE_PTR(55U, &chartInstance->c3_no_rhoeps);\r\n          _SFD_SET_DATA_VALUE_PTR(56U, &chartInstance->c3_Wy);\r\n          _SFD_SET_DATA_VALUE_PTR(57U, &chartInstance->c3_Wdu);\r\n          _SFD_SET_DATA_VALUE_PTR(58U, &chartInstance->c3_Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(59U, &chartInstance->c3_SuJm);\r\n          _SFD_SET_DATA_VALUE_PTR(60U, &chartInstance->c3_I2JmWuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(61U, &chartInstance->c3_Su1);\r\n          _SFD_SET_DATA_VALUE_PTR(62U, &chartInstance->c3_I1WuI2Jm);\r\n          _SFD_SET_DATA_VALUE_PTR(63U, &chartInstance->c3_Sx);\r\n          _SFD_SET_DATA_VALUE_PTR(64U, &chartInstance->c3_Hv);\r\n          _SFD_SET_DATA_VALUE_PTR(65U, &chartInstance->c3_Wu);\r\n          _SFD_SET_DATA_VALUE_PTR(66U, &chartInstance->c3_I1);\r\n          _SFD_SET_DATA_VALUE_PTR(67U, *c3_iAout);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"tyXL61drY84iZIuMyIrmK\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c3_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c3_mpclib((SFc3_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c3_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c3_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c3_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c3_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c3_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc3_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc3_mpclib((SFc3_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c3_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c3_mpclib((SFc3_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c3_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     Ac H Hinv Hv I1 I1WuI2Jm I2JmWuI2Jm Jm Kr Ku1 Kut Kv Kx Linv Mlim Mu1 Mv Mx Su1 SuJm Sx Wdu Wu Wy blocking_moves degrees enable_value isQP lims_inport maxiter no_duwt no_rhoeps no_switch no_umax no_umin no_ymax no_ymin no_ywt nu nxQP ny openloopflag p return_cost return_sequence switch_inport uoff utarget yoff z_degrees\r\n   */\r\n  const char_T *rtParamNames[] = { \"Ac\", \"H\", \"Hinv\", \"Hv\", \"I1\", \"I1WuI2Jm\",\r\n    \"I2JmWuI2Jm\", \"Jm\", \"Kr\", \"Ku1\", \"Kut\", \"Kv\", \"Kx\", \"Linv\", \"Mlim\", \"Mu1\",\r\n    \"Mv\", \"Mx\", \"Su1\", \"SuJm\", \"Sx\", \"Wdu\", \"Wu\", \"Wy\", \"blocking_moves\",\r\n    \"degrees\", \"enable_value\", \"isQP\", \"lims_inport\", \"maxiter\", \"no_duwt\",\r\n    \"no_rhoeps\", \"no_switch\", \"no_umax\", \"no_umin\", \"no_ymax\", \"no_ymin\",\r\n    \"no_ywt\", \"nu\", \"nxQP\", \"ny\", \"openloopflag\", \"p\", \"return_cost\",\r\n    \"return_sequence\", \"switch_inport\", \"uoff\", \"utarget\", \"yoff\", \"z_degrees\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for Ac*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for H*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for Hinv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for Hv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for I1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_DOUBLE);\r\n\r\n  /* registration for I1WuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for I2JmWuI2Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for Jm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n\r\n  /* registration for Kr*/\r\n  ssRegDlgParamAsRunTimeParam(S, 8, 8, rtParamNames[8], SS_DOUBLE);\r\n\r\n  /* registration for Ku1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 9, 9, rtParamNames[9], SS_DOUBLE);\r\n\r\n  /* registration for Kut*/\r\n  ssRegDlgParamAsRunTimeParam(S, 10, 10, rtParamNames[10], SS_DOUBLE);\r\n\r\n  /* registration for Kv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 11, 11, rtParamNames[11], SS_DOUBLE);\r\n\r\n  /* registration for Kx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 12, 12, rtParamNames[12], SS_DOUBLE);\r\n\r\n  /* registration for Linv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 13, 13, rtParamNames[13], SS_DOUBLE);\r\n\r\n  /* registration for Mlim*/\r\n  ssRegDlgParamAsRunTimeParam(S, 14, 14, rtParamNames[14], SS_DOUBLE);\r\n\r\n  /* registration for Mu1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 15, 15, rtParamNames[15], SS_DOUBLE);\r\n\r\n  /* registration for Mv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 16, 16, rtParamNames[16], SS_DOUBLE);\r\n\r\n  /* registration for Mx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 17, 17, rtParamNames[17], SS_DOUBLE);\r\n\r\n  /* registration for Su1*/\r\n  ssRegDlgParamAsRunTimeParam(S, 18, 18, rtParamNames[18], SS_DOUBLE);\r\n\r\n  /* registration for SuJm*/\r\n  ssRegDlgParamAsRunTimeParam(S, 19, 19, rtParamNames[19], SS_DOUBLE);\r\n\r\n  /* registration for Sx*/\r\n  ssRegDlgParamAsRunTimeParam(S, 20, 20, rtParamNames[20], SS_DOUBLE);\r\n\r\n  /* registration for Wdu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 21, 21, rtParamNames[21], SS_DOUBLE);\r\n\r\n  /* registration for Wu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 22, 22, rtParamNames[22], SS_DOUBLE);\r\n\r\n  /* registration for Wy*/\r\n  ssRegDlgParamAsRunTimeParam(S, 23, 23, rtParamNames[23], SS_DOUBLE);\r\n\r\n  /* registration for blocking_moves*/\r\n  ssRegDlgParamAsRunTimeParam(S, 24, 24, rtParamNames[24], SS_DOUBLE);\r\n\r\n  /* registration for degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 25, 25, rtParamNames[25], SS_DOUBLE);\r\n\r\n  /* registration for enable_value*/\r\n  ssRegDlgParamAsRunTimeParam(S, 26, 26, rtParamNames[26], SS_DOUBLE);\r\n\r\n  /* registration for isQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 27, 27, rtParamNames[27], SS_BOOLEAN);\r\n\r\n  /* registration for lims_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 28, 28, rtParamNames[28], SS_DOUBLE);\r\n\r\n  /* registration for maxiter*/\r\n  ssRegDlgParamAsRunTimeParam(S, 29, 29, rtParamNames[29], SS_DOUBLE);\r\n\r\n  /* registration for no_duwt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 30, 30, rtParamNames[30], SS_DOUBLE);\r\n\r\n  /* registration for no_rhoeps*/\r\n  ssRegDlgParamAsRunTimeParam(S, 31, 31, rtParamNames[31], SS_DOUBLE);\r\n\r\n  /* registration for no_switch*/\r\n  ssRegDlgParamAsRunTimeParam(S, 32, 32, rtParamNames[32], SS_DOUBLE);\r\n\r\n  /* registration for no_umax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 33, 33, rtParamNames[33], SS_DOUBLE);\r\n\r\n  /* registration for no_umin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 34, 34, rtParamNames[34], SS_DOUBLE);\r\n\r\n  /* registration for no_ymax*/\r\n  ssRegDlgParamAsRunTimeParam(S, 35, 35, rtParamNames[35], SS_DOUBLE);\r\n\r\n  /* registration for no_ymin*/\r\n  ssRegDlgParamAsRunTimeParam(S, 36, 36, rtParamNames[36], SS_DOUBLE);\r\n\r\n  /* registration for no_ywt*/\r\n  ssRegDlgParamAsRunTimeParam(S, 37, 37, rtParamNames[37], SS_DOUBLE);\r\n\r\n  /* registration for nu*/\r\n  ssRegDlgParamAsRunTimeParam(S, 38, 38, rtParamNames[38], SS_DOUBLE);\r\n\r\n  /* registration for nxQP*/\r\n  ssRegDlgParamAsRunTimeParam(S, 39, 39, rtParamNames[39], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 40, 40, rtParamNames[40], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 41, 41, rtParamNames[41], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 42, 42, rtParamNames[42], SS_DOUBLE);\r\n\r\n  /* registration for return_cost*/\r\n  ssRegDlgParamAsRunTimeParam(S, 43, 43, rtParamNames[43], SS_DOUBLE);\r\n\r\n  /* registration for return_sequence*/\r\n  ssRegDlgParamAsRunTimeParam(S, 44, 44, rtParamNames[44], SS_DOUBLE);\r\n\r\n  /* registration for switch_inport*/\r\n  ssRegDlgParamAsRunTimeParam(S, 45, 45, rtParamNames[45], SS_DOUBLE);\r\n\r\n  /* registration for uoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 46, 46, rtParamNames[46], SS_DOUBLE);\r\n\r\n  /* registration for utarget*/\r\n  ssRegDlgParamAsRunTimeParam(S, 47, 47, rtParamNames[47], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 48, 48, rtParamNames[48], SS_DOUBLE);\r\n\r\n  /* registration for z_degrees*/\r\n  ssRegDlgParamAsRunTimeParam(S, 49, 49, rtParamNames[49], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      3);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,3,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,3,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,3);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 2, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 3, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 4, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 5, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 6, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 7, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 8, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 9, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 10, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 11, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 12, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,13);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,3,5);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=5; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 13; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,3);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(1708912441U));\r\n  ssSetChecksum1(S,(3061039266U));\r\n  ssSetChecksum2(S,(3804557872U));\r\n  ssSetChecksum3(S,(1905961369U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c3_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c3_mpclib(SimStruct *S)\r\n{\r\n  SFc3_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc3_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc3_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc3_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c3_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c3_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c3_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c3_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c3_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c3_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c3_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c3_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c3_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c3_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c3_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c3_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c3_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/c3_mpclib.h",
    "content": "#ifndef __c3_mpclib_h__\r\n#define __c3_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc3_mpclibInstanceStruct\r\n#define typedef_SFc3_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c3_sfEvent;\r\n  boolean_T c3_isStable;\r\n  boolean_T c3_doneDoubleBufferReInit;\r\n  uint8_T c3_is_active_c3_mpclib;\r\n  boolean_T c3_isQP;\r\n  real_T c3_nu;\r\n  real_T c3_ny;\r\n  real_T c3_degrees;\r\n  real_T c3_Hinv[36];\r\n  real_T c3_Kx[66];\r\n  real_T c3_Ku1[18];\r\n  real_T c3_Kut[90];\r\n  real_T c3_Kr[60];\r\n  real_T c3_Kv[36];\r\n  real_T c3_Mlim;\r\n  real_T c3_Mx[11];\r\n  real_T c3_Mu1[3];\r\n  real_T c3_Mv;\r\n  real_T c3_z_degrees[6];\r\n  real_T c3_utarget[15];\r\n  real_T c3_p;\r\n  real_T c3_uoff[3];\r\n  real_T c3_yoff[2];\r\n  real_T c3_maxiter;\r\n  real_T c3_nxQP;\r\n  boolean_T c3_openloopflag;\r\n  real_T c3_lims_inport;\r\n  real_T c3_no_umin;\r\n  real_T c3_no_umax;\r\n  real_T c3_no_ymin;\r\n  real_T c3_no_ymax;\r\n  real_T c3_switch_inport;\r\n  real_T c3_no_switch;\r\n  real_T c3_enable_value;\r\n  real_T c3_return_cost;\r\n  real_T c3_H[36];\r\n  real_T c3_return_sequence;\r\n  real_T c3_blocking_moves[5];\r\n  real_T c3_Linv[36];\r\n  real_T c3_Ac[6];\r\n  real_T c3_no_ywt;\r\n  real_T c3_no_duwt;\r\n  real_T c3_no_rhoeps;\r\n  real_T c3_Wy;\r\n  real_T c3_Wdu;\r\n  real_T c3_Jm;\r\n  real_T c3_SuJm;\r\n  real_T c3_I2JmWuI2Jm;\r\n  real_T c3_Su1;\r\n  real_T c3_I1WuI2Jm;\r\n  real_T c3_Sx;\r\n  real_T c3_Hv;\r\n  real_T c3_Wu;\r\n  real_T c3_I1;\r\n} SFc3_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc3_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c3_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/c4_mpclib.c",
    "content": "/* Include files */\r\n\r\n#include <stddef.h>\r\n#include \"blas.h\"\r\n#include \"mpclib_sfun.h\"\r\n#include \"c4_mpclib.h\"\r\n#define CHARTINSTANCE_CHARTNUMBER      (chartInstance->chartNumber)\r\n#define CHARTINSTANCE_INSTANCENUMBER   (chartInstance->instanceNumber)\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#define _SF_MEX_LISTEN_FOR_CTRL_C(S)   sf_mex_listen_for_ctrl_c(sfGlobalDebugInstanceStruct,S);\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n#define CALL_EVENT                     (-1)\r\n#define c4_b_p                         (5.0)\r\n#define c4_b_ny                        (2.0)\r\n#define c4_b_nv                        (1.0)\r\n#define c4_b_voff                      (0.0)\r\n#define c4_b_no_md                     (1.0)\r\n#define c4_b_no_ref                    (0.0)\r\n#define c4_b_openloopflag              (FALSE)\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nstatic const char * c4_debug_family_names[16] = { \"DataType\", \"nv\", \"ny\", \"p\",\r\n  \"yoff\", \"voff\", \"no_md\", \"no_ref\", \"openloopflag\", \"nargin\", \"nargout\", \"ref\",\r\n  \"md\", \"rseq\", \"vseq\", \"v\" };\r\n\r\n/* Function Declarations */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance);\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st);\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance);\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber);\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData);\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic void c4_info_helper(const mxArray **c4_info);\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u);\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u);\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10]);\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10]);\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[6]);\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[6]);\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier);\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData);\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic void c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2]);\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData);\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier);\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId);\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance);\r\n\r\n/* Function Definitions */\r\nstatic void initialize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  chartInstance->c4_is_active_c4_mpclib = 0U;\r\n}\r\n\r\nstatic void initialize_params_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  real_T c4_d0;\r\n  real_T c4_d1;\r\n  real_T c4_d2;\r\n  real_T c4_dv0[2];\r\n  int32_T c4_i0;\r\n  real_T c4_d3;\r\n  real_T c4_d4;\r\n  real_T c4_d5;\r\n  real_T c4_d6;\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'nv' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"nv\", sf_mex_get_sfun_param(chartInstance->S, 2, 0),\r\n                      &c4_d0, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_nv = c4_d0;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'ny' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"ny\", sf_mex_get_sfun_param(chartInstance->S, 3, 0),\r\n                      &c4_d1, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_ny = c4_d1;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'p' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"p\", sf_mex_get_sfun_param(chartInstance->S, 5, 0), &c4_d2,\r\n                      0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_p = c4_d2;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'yoff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"yoff\", sf_mex_get_sfun_param(chartInstance->S, 7, 0),\r\n                      c4_dv0, 0, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i0 = 0; c4_i0 < 2; c4_i0++) {\r\n    chartInstance->c4_yoff[c4_i0] = c4_dv0[c4_i0];\r\n  }\r\n\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'voff' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"voff\", sf_mex_get_sfun_param(chartInstance->S, 6, 0),\r\n                      &c4_d3, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_voff = c4_d3;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_md' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_md\", sf_mex_get_sfun_param(chartInstance->S, 0, 0),\r\n                      &c4_d4, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_md = c4_d4;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'no_ref' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"no_ref\", sf_mex_get_sfun_param(chartInstance->S, 1, 0),\r\n                      &c4_d5, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_no_ref = c4_d5;\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n  sf_set_error_prefix_string(\r\n    \"Error evaluating data 'openloopflag' in the parent workspace.\\n\");\r\n  sf_mex_import_named(\"sf_mex_get_sfun_param\", sf_mex_get_sfun_param\r\n                      (chartInstance->S, 4, 0), &c4_d6, 0, 0, 0U, 0, 0U, 0);\r\n  chartInstance->c4_openloopflag = (c4_d6 != 0.0);\r\n  sf_set_error_prefix_string(\"Stateflow Runtime Error (chart): \");\r\n}\r\n\r\nstatic void enable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void disable_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n}\r\n\r\nstatic void c4_update_debugger_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n}\r\n\r\nstatic const mxArray *get_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct\r\n  *chartInstance)\r\n{\r\n  const mxArray *c4_st;\r\n  const mxArray *c4_y = NULL;\r\n  int32_T c4_i1;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_hoistedGlobal;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  int32_T c4_i2;\r\n  real_T c4_c_u[6];\r\n  const mxArray *c4_d_y = NULL;\r\n  uint8_T c4_b_hoistedGlobal;\r\n  uint8_T c4_d_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  real_T *c4_v;\r\n  real_T (*c4_vseq)[6];\r\n  real_T (*c4_rseq)[10];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  c4_st = NULL;\r\n  c4_st = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_createcellarray(4), FALSE);\r\n  for (c4_i1 = 0; c4_i1 < 10; c4_i1++) {\r\n    c4_u[c4_i1] = (*c4_rseq)[c4_i1];\r\n  }\r\n\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_setcell(c4_y, 0, c4_b_y);\r\n  c4_hoistedGlobal = *c4_v;\r\n  c4_b_u = c4_hoistedGlobal;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 1, c4_c_y);\r\n  for (c4_i2 = 0; c4_i2 < 6; c4_i2++) {\r\n    c4_c_u[c4_i2] = (*c4_vseq)[c4_i2];\r\n  }\r\n\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", c4_c_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_setcell(c4_y, 2, c4_d_y);\r\n  c4_b_hoistedGlobal = chartInstance->c4_is_active_c4_mpclib;\r\n  c4_d_u = c4_b_hoistedGlobal;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_d_u, 3, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_setcell(c4_y, 3, c4_e_y);\r\n  sf_mex_assign(&c4_st, c4_y, FALSE);\r\n  return c4_st;\r\n}\r\n\r\nstatic void set_sim_state_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_st)\r\n{\r\n  const mxArray *c4_u;\r\n  real_T c4_dv1[10];\r\n  int32_T c4_i3;\r\n  real_T c4_dv2[6];\r\n  int32_T c4_i4;\r\n  real_T *c4_v;\r\n  real_T (*c4_rseq)[10];\r\n  real_T (*c4_vseq)[6];\r\n  c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  chartInstance->c4_doneDoubleBufferReInit = TRUE;\r\n  c4_u = sf_mex_dup(c4_st);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 0)), \"rseq\",\r\n                      c4_dv1);\r\n  for (c4_i3 = 0; c4_i3 < 10; c4_i3++) {\r\n    (*c4_rseq)[c4_i3] = c4_dv1[c4_i3];\r\n  }\r\n\r\n  *c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 1)),\r\n    \"v\");\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(sf_mex_getcell(c4_u, 2)),\r\n                        \"vseq\", c4_dv2);\r\n  for (c4_i4 = 0; c4_i4 < 6; c4_i4++) {\r\n    (*c4_vseq)[c4_i4] = c4_dv2[c4_i4];\r\n  }\r\n\r\n  chartInstance->c4_is_active_c4_mpclib = c4_j_emlrt_marshallIn(chartInstance,\r\n    sf_mex_dup(sf_mex_getcell(c4_u, 3)), \"is_active_c4_mpclib\");\r\n  sf_mex_destroy(&c4_u);\r\n  c4_update_debugger_state_c4_mpclib(chartInstance);\r\n  sf_mex_destroy(&c4_st);\r\n}\r\n\r\nstatic void finalize_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void sf_c4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n  int32_T c4_i5;\r\n  int32_T c4_i6;\r\n  int32_T c4_i7;\r\n  int32_T c4_i8;\r\n  real_T c4_hoistedGlobal;\r\n  int32_T c4_i9;\r\n  real_T c4_ref[2];\r\n  real_T c4_md;\r\n  uint32_T c4_debug_family_var_map[16];\r\n  char_T c4_DataType[6];\r\n  real_T c4_c_nv;\r\n  real_T c4_c_ny;\r\n  real_T c4_c_p;\r\n  real_T c4_c_yoff[2];\r\n  real_T c4_c_voff;\r\n  real_T c4_c_no_md;\r\n  real_T c4_c_no_ref;\r\n  boolean_T c4_c_openloopflag;\r\n  real_T c4_nargin = 10.0;\r\n  real_T c4_nargout = 3.0;\r\n  real_T c4_rseq[10];\r\n  real_T c4_vseq[6];\r\n  real_T c4_v;\r\n  int32_T c4_i10;\r\n  int32_T c4_i11;\r\n  static char_T c4_cv0[6] = { 'd', 'o', 'u', 'b', 'l', 'e' };\r\n\r\n  int32_T c4_i12;\r\n  int32_T c4_i13;\r\n  int32_T c4_i14;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  real_T c4_b_u;\r\n  const mxArray *c4_b_y = NULL;\r\n  real_T c4_c_u;\r\n  const mxArray *c4_c_y = NULL;\r\n  real_T c4_d_u;\r\n  const mxArray *c4_d_y = NULL;\r\n  real_T c4_e_u;\r\n  const mxArray *c4_e_y = NULL;\r\n  int32_T c4_i15;\r\n  real_T c4_f_u[2];\r\n  const mxArray *c4_f_y = NULL;\r\n  real_T c4_g_u;\r\n  const mxArray *c4_g_y = NULL;\r\n  real_T c4_h_u;\r\n  const mxArray *c4_h_y = NULL;\r\n  real_T c4_i_u;\r\n  const mxArray *c4_i_y = NULL;\r\n  boolean_T c4_j_u;\r\n  const mxArray *c4_j_y = NULL;\r\n  const mxArray *c4_b_v = NULL;\r\n  const mxArray *c4_b_vseq = NULL;\r\n  const mxArray *c4_b_rseq = NULL;\r\n  real_T c4_dv3[10];\r\n  int32_T c4_i16;\r\n  real_T c4_dv4[6];\r\n  int32_T c4_i17;\r\n  int32_T c4_i18;\r\n  int32_T c4_i19;\r\n  real_T *c4_b_md;\r\n  real_T *c4_c_v;\r\n  real_T (*c4_c_rseq)[10];\r\n  real_T (*c4_c_vseq)[6];\r\n  real_T (*c4_b_ref)[2];\r\n  c4_c_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n  c4_b_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n  c4_b_ref = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 0);\r\n  c4_c_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n  c4_c_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n  _SFD_SYMBOL_SCOPE_PUSH(0U, 0U);\r\n  _sfTime_ = (real_T)ssGetT(chartInstance->S);\r\n  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  for (c4_i5 = 0; c4_i5 < 10; c4_i5++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_rseq)[c4_i5], 0U);\r\n  }\r\n\r\n  for (c4_i6 = 0; c4_i6 < 6; c4_i6++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_c_vseq)[c4_i6], 1U);\r\n  }\r\n\r\n  for (c4_i7 = 0; c4_i7 < 2; c4_i7++) {\r\n    _SFD_DATA_RANGE_CHECK((*c4_b_ref)[c4_i7], 2U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(*c4_b_md, 3U);\r\n  _SFD_DATA_RANGE_CHECK(*c4_c_v, 4U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_nv, 5U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_ny, 6U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_p, 7U);\r\n  for (c4_i8 = 0; c4_i8 < 2; c4_i8++) {\r\n    _SFD_DATA_RANGE_CHECK(chartInstance->c4_yoff[c4_i8], 8U);\r\n  }\r\n\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_voff, 9U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_md, 10U);\r\n  _SFD_DATA_RANGE_CHECK(chartInstance->c4_no_ref, 11U);\r\n  _SFD_DATA_RANGE_CHECK((real_T)chartInstance->c4_openloopflag, 12U);\r\n  chartInstance->c4_sfEvent = CALL_EVENT;\r\n  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  c4_hoistedGlobal = *c4_b_md;\r\n  for (c4_i9 = 0; c4_i9 < 2; c4_i9++) {\r\n    c4_ref[c4_i9] = (*c4_b_ref)[c4_i9];\r\n  }\r\n\r\n  c4_md = c4_hoistedGlobal;\r\n  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 16U, 16U, c4_debug_family_names,\r\n    c4_debug_family_var_map);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_DataType, 0U, c4_f_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_nv, 1U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_ny, 2U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_p, 3U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_c_yoff, 4U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_voff, 5U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_md, 6U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_no_ref, 7U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_c_openloopflag, 8U, c4_e_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargin, 9U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_nargout, 10U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(c4_ref, 11U, c4_d_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML(&c4_md, 12U, c4_sf_marshallOut);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_rseq, 13U, c4_c_sf_marshallOut,\r\n    c4_c_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c4_vseq, 14U, c4_b_sf_marshallOut,\r\n    c4_b_sf_marshallIn);\r\n  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c4_v, 15U, c4_sf_marshallOut,\r\n    c4_sf_marshallIn);\r\n  c4_c_openloopflag = c4_b_openloopflag;\r\n  c4_c_no_ref = c4_b_no_ref;\r\n  c4_c_no_md = c4_b_no_md;\r\n  c4_c_voff = c4_b_voff;\r\n  for (c4_i10 = 0; c4_i10 < 2; c4_i10++) {\r\n    c4_c_yoff[c4_i10] = 0.0;\r\n  }\r\n\r\n  c4_c_p = c4_b_p;\r\n  c4_c_ny = c4_b_ny;\r\n  c4_c_nv = c4_b_nv;\r\n  CV_EML_FCN(0, 0);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 3);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 4);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 5);\r\n  CV_EML_IF(0, 1, 0, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 7);\r\n  for (c4_i11 = 0; c4_i11 < 6; c4_i11++) {\r\n    c4_DataType[c4_i11] = c4_cv0[c4_i11];\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 8);\r\n  for (c4_i12 = 0; c4_i12 < 10; c4_i12++) {\r\n    c4_rseq[c4_i12] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 9);\r\n  for (c4_i13 = 0; c4_i13 < 6; c4_i13++) {\r\n    c4_vseq[c4_i13] = 0.0;\r\n  }\r\n\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 10);\r\n  c4_v = 0.0;\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 11);\r\n  CV_EML_IF(0, 1, 1, TRUE);\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, 12);\r\n  for (c4_i14 = 0; c4_i14 < 2; c4_i14++) {\r\n    c4_u[c4_i14] = c4_ref[c4_i14];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c4_b_u = c4_md;\r\n  c4_b_y = NULL;\r\n  sf_mex_assign(&c4_b_y, sf_mex_create(\"y\", &c4_b_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_c_u = c4_b_nv;\r\n  c4_c_y = NULL;\r\n  sf_mex_assign(&c4_c_y, sf_mex_create(\"y\", &c4_c_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_d_u = c4_b_ny;\r\n  c4_d_y = NULL;\r\n  sf_mex_assign(&c4_d_y, sf_mex_create(\"y\", &c4_d_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_e_u = c4_b_p;\r\n  c4_e_y = NULL;\r\n  sf_mex_assign(&c4_e_y, sf_mex_create(\"y\", &c4_e_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  for (c4_i15 = 0; c4_i15 < 2; c4_i15++) {\r\n    c4_f_u[c4_i15] = 0.0;\r\n  }\r\n\r\n  c4_f_y = NULL;\r\n  sf_mex_assign(&c4_f_y, sf_mex_create(\"y\", c4_f_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  c4_g_u = c4_b_voff;\r\n  c4_g_y = NULL;\r\n  sf_mex_assign(&c4_g_y, sf_mex_create(\"y\", &c4_g_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_h_u = c4_b_no_md;\r\n  c4_h_y = NULL;\r\n  sf_mex_assign(&c4_h_y, sf_mex_create(\"y\", &c4_h_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_i_u = c4_b_no_ref;\r\n  c4_i_y = NULL;\r\n  sf_mex_assign(&c4_i_y, sf_mex_create(\"y\", &c4_i_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  c4_j_u = c4_b_openloopflag;\r\n  c4_j_y = NULL;\r\n  sf_mex_assign(&c4_j_y, sf_mex_create(\"y\", &c4_j_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_call_debug(\"mpcblock_refmd_double_mex\", 3U, 10U, 14, c4_y, 14, c4_b_y,\r\n                    14, c4_c_y, 14, c4_d_y, 14, c4_e_y, 14, c4_f_y, 14, c4_g_y,\r\n                    14, c4_h_y, 14, c4_i_y, 14, c4_j_y, &c4_b_rseq, &c4_b_vseq,\r\n                    &c4_b_v);\r\n  c4_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_rseq), \"rseq\", c4_dv3);\r\n  for (c4_i16 = 0; c4_i16 < 10; c4_i16++) {\r\n    c4_rseq[c4_i16] = c4_dv3[c4_i16];\r\n  }\r\n\r\n  c4_c_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_vseq), \"vseq\", c4_dv4);\r\n  for (c4_i17 = 0; c4_i17 < 6; c4_i17++) {\r\n    c4_vseq[c4_i17] = c4_dv4[c4_i17];\r\n  }\r\n\r\n  c4_v = c4_e_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_v), \"v\");\r\n  _SFD_EML_CALL(0U, chartInstance->c4_sfEvent, -18);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  sf_mex_destroy(&c4_b_rseq);\r\n  sf_mex_destroy(&c4_b_vseq);\r\n  sf_mex_destroy(&c4_b_v);\r\n  for (c4_i18 = 0; c4_i18 < 10; c4_i18++) {\r\n    (*c4_c_rseq)[c4_i18] = c4_rseq[c4_i18];\r\n  }\r\n\r\n  for (c4_i19 = 0; c4_i19 < 6; c4_i19++) {\r\n    (*c4_c_vseq)[c4_i19] = c4_vseq[c4_i19];\r\n  }\r\n\r\n  *c4_c_v = c4_v;\r\n  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 1U, chartInstance->c4_sfEvent);\r\n  _SFD_SYMBOL_SCOPE_POP();\r\n  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_mpclibMachineNumber_,\r\n    chartInstance->chartNumber, chartInstance->instanceNumber);\r\n}\r\n\r\nstatic void initSimStructsc4_mpclib(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\nstatic void init_script_number_translation(uint32_T c4_machineNumber, uint32_T\r\n  c4_chartNumber)\r\n{\r\n}\r\n\r\nstatic const mxArray *c4_sf_marshallOut(void *chartInstanceVoid, void *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  real_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(real_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 0, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_v;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_v = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  *(real_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_b_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i20;\r\n  real_T c4_b_inData[6];\r\n  int32_T c4_i21;\r\n  real_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i20 = 0; c4_i20 < 6; c4_i20++) {\r\n    c4_b_inData[c4_i20] = (*(real_T (*)[6])c4_inData)[c4_i20];\r\n  }\r\n\r\n  for (c4_i21 = 0; c4_i21 < 6; c4_i21++) {\r\n    c4_u[c4_i21] = c4_b_inData[c4_i21];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_b_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_vseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[6];\r\n  int32_T c4_i22;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_vseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n  for (c4_i22 = 0; c4_i22 < 6; c4_i22++) {\r\n    (*(real_T (*)[6])c4_outData)[c4_i22] = c4_y[c4_i22];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_c_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i23;\r\n  real_T c4_b_inData[10];\r\n  int32_T c4_i24;\r\n  real_T c4_u[10];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i23 = 0; c4_i23 < 10; c4_i23++) {\r\n    c4_b_inData[c4_i23] = (*(real_T (*)[10])c4_inData)[c4_i23];\r\n  }\r\n\r\n  for (c4_i24 = 0; c4_i24 < 10; c4_i24++) {\r\n    c4_u[c4_i24] = c4_b_inData[c4_i24];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 10), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic void c4_c_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_rseq;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[10];\r\n  int32_T c4_i25;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_rseq = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n  for (c4_i25 = 0; c4_i25 < 10; c4_i25++) {\r\n    (*(real_T (*)[10])c4_outData)[c4_i25] = c4_y[c4_i25];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic const mxArray *c4_d_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i26;\r\n  real_T c4_b_inData[2];\r\n  int32_T c4_i27;\r\n  real_T c4_u[2];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i26 = 0; c4_i26 < 2; c4_i26++) {\r\n    c4_b_inData[c4_i26] = (*(real_T (*)[2])c4_inData)[c4_i26];\r\n  }\r\n\r\n  for (c4_i27 = 0; c4_i27 < 2; c4_i27++) {\r\n    c4_u[c4_i27] = c4_b_inData[c4_i27];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 0, 0U, 1U, 0U, 1, 2), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_e_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  boolean_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(boolean_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 11, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic const mxArray *c4_f_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_i28;\r\n  char_T c4_b_inData[6];\r\n  int32_T c4_i29;\r\n  char_T c4_u[6];\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  for (c4_i28 = 0; c4_i28 < 6; c4_i28++) {\r\n    c4_b_inData[c4_i28] = (*(char_T (*)[6])c4_inData)[c4_i28];\r\n  }\r\n\r\n  for (c4_i29 = 0; c4_i29 < 6; c4_i29++) {\r\n    c4_u[c4_i29] = c4_b_inData[c4_i29];\r\n  }\r\n\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 10, 0U, 1U, 0U, 2, 1, 6), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nconst mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void)\r\n{\r\n  const mxArray *c4_nameCaptureInfo = NULL;\r\n  c4_nameCaptureInfo = NULL;\r\n  sf_mex_assign(&c4_nameCaptureInfo, sf_mex_createstruct(\"structure\", 2, 2, 1),\r\n                FALSE);\r\n  c4_info_helper(&c4_nameCaptureInfo);\r\n  sf_mex_emlrtNameCapturePostProcessR2012a(&c4_nameCaptureInfo);\r\n  return c4_nameCaptureInfo;\r\n}\r\n\r\nstatic void c4_info_helper(const mxArray **c4_info)\r\n{\r\n  const mxArray *c4_rhs0 = NULL;\r\n  const mxArray *c4_lhs0 = NULL;\r\n  const mxArray *c4_rhs1 = NULL;\r\n  const mxArray *c4_lhs1 = NULL;\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"\"), \"context\", \"context\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"mtimes\"), \"name\", \"name\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m\"), \"resolved\",\r\n                  \"resolved\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363688678U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 0);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 0);\r\n  sf_mex_assign(&c4_rhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs0, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs0), \"rhs\", \"rhs\", 0);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs0), \"lhs\", \"lhs\", 0);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[ILXE]$matlabroot$/toolbox/eml/lib/matlab/ops/mtimes.m!common_checks\"),\r\n                  \"context\", \"context\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"coder.internal.isBuiltInNumeric\"), \"name\", \"name\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\"double\"), \"dominantType\",\r\n                  \"dominantType\", 1);\r\n  sf_mex_addfield(*c4_info, c4_emlrt_marshallOut(\r\n    \"[IXE]$matlabroot$/toolbox/shared/coder/coder/+coder/+internal/isBuiltInNumeric.m\"),\r\n                  \"resolved\", \"resolved\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(1363689356U), \"fileTimeLo\",\r\n                  \"fileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"fileTimeHi\",\r\n                  \"fileTimeHi\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeLo\",\r\n                  \"mFileTimeLo\", 1);\r\n  sf_mex_addfield(*c4_info, c4_b_emlrt_marshallOut(0U), \"mFileTimeHi\",\r\n                  \"mFileTimeHi\", 1);\r\n  sf_mex_assign(&c4_rhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_assign(&c4_lhs1, sf_mex_createcellarray(0), FALSE);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_rhs1), \"rhs\", \"rhs\", 1);\r\n  sf_mex_addfield(*c4_info, sf_mex_duplicatearraysafe(&c4_lhs1), \"lhs\", \"lhs\", 1);\r\n  sf_mex_destroy(&c4_rhs0);\r\n  sf_mex_destroy(&c4_lhs0);\r\n  sf_mex_destroy(&c4_rhs1);\r\n  sf_mex_destroy(&c4_lhs1);\r\n}\r\n\r\nstatic const mxArray *c4_emlrt_marshallOut(char * c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", c4_u, 15, 0U, 0U, 0U, 2, 1, strlen\r\n    (c4_u)), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_b_emlrt_marshallOut(uint32_T c4_u)\r\n{\r\n  const mxArray *c4_y = NULL;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 7, 0U, 0U, 0U, 0), FALSE);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance, const\r\n  mxArray *c4_rseq, const char_T *c4_identifier, real_T c4_y[10])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_b_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_rseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_rseq);\r\n}\r\n\r\nstatic void c4_b_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[10])\r\n{\r\n  real_T c4_dv5[10];\r\n  int32_T c4_i30;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv5, 1, 0, 0U, 1, 0U, 1, 10);\r\n  for (c4_i30 = 0; c4_i30 < 10; c4_i30++) {\r\n    c4_y[c4_i30] = c4_dv5[c4_i30];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_c_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_vseq, const char_T *c4_identifier, real_T c4_y[6])\r\n{\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_d_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_vseq), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_vseq);\r\n}\r\n\r\nstatic void c4_d_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[6])\r\n{\r\n  real_T c4_dv6[6];\r\n  int32_T c4_i31;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv6, 1, 0, 0U, 1, 0U, 1, 6);\r\n  for (c4_i31 = 0; c4_i31 < 6; c4_i31++) {\r\n    c4_y[c4_i31] = c4_dv6[c4_i31];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic real_T c4_e_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_v, const char_T *c4_identifier)\r\n{\r\n  real_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_f_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_v), &c4_thisId);\r\n  sf_mex_destroy(&c4_v);\r\n  return c4_y;\r\n}\r\n\r\nstatic real_T c4_f_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  real_T c4_y;\r\n  real_T c4_d7;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_d7, 1, 0, 0U, 0, 0U, 0);\r\n  c4_y = c4_d7;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic const mxArray *c4_g_sf_marshallOut(void *chartInstanceVoid, void\r\n  *c4_inData)\r\n{\r\n  const mxArray *c4_mxArrayOutData = NULL;\r\n  int32_T c4_u;\r\n  const mxArray *c4_y = NULL;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_mxArrayOutData = NULL;\r\n  c4_u = *(int32_T *)c4_inData;\r\n  c4_y = NULL;\r\n  sf_mex_assign(&c4_y, sf_mex_create(\"y\", &c4_u, 6, 0U, 0U, 0U, 0), FALSE);\r\n  sf_mex_assign(&c4_mxArrayOutData, c4_y, FALSE);\r\n  return c4_mxArrayOutData;\r\n}\r\n\r\nstatic int32_T c4_g_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  int32_T c4_y;\r\n  int32_T c4_i32;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_i32, 1, 6, 0U, 0, 0U, 0);\r\n  c4_y = c4_i32;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_d_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_b_sfEvent;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  int32_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_b_sfEvent = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_g_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_b_sfEvent),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_b_sfEvent);\r\n  *(int32_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic void c4_h_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId, real_T c4_y[2])\r\n{\r\n  real_T c4_dv7[2];\r\n  int32_T c4_i33;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), c4_dv7, 1, 0, 0U, 1, 0U, 1, 2);\r\n  for (c4_i33 = 0; c4_i33 < 2; c4_i33++) {\r\n    c4_y[c4_i33] = c4_dv7[c4_i33];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_u);\r\n}\r\n\r\nstatic void c4_e_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_yoff;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  real_T c4_y[2];\r\n  int32_T c4_i34;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_yoff = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_h_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_yoff), &c4_thisId, c4_y);\r\n  sf_mex_destroy(&c4_c_yoff);\r\n  for (c4_i34 = 0; c4_i34 < 2; c4_i34++) {\r\n    (*(real_T (*)[2])c4_outData)[c4_i34] = c4_y[c4_i34];\r\n  }\r\n\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic boolean_T c4_i_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  boolean_T c4_y;\r\n  boolean_T c4_b0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_b0, 1, 11, 0U, 0, 0U, 0);\r\n  c4_y = c4_b0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void c4_f_sf_marshallIn(void *chartInstanceVoid, const mxArray\r\n  *c4_mxArrayInData, const char_T *c4_varName, void *c4_outData)\r\n{\r\n  const mxArray *c4_c_openloopflag;\r\n  const char_T *c4_identifier;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  boolean_T c4_y;\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)chartInstanceVoid;\r\n  c4_c_openloopflag = sf_mex_dup(c4_mxArrayInData);\r\n  c4_identifier = c4_varName;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_i_emlrt_marshallIn(chartInstance, sf_mex_dup(c4_c_openloopflag),\r\n    &c4_thisId);\r\n  sf_mex_destroy(&c4_c_openloopflag);\r\n  *(boolean_T *)c4_outData = c4_y;\r\n  sf_mex_destroy(&c4_mxArrayInData);\r\n}\r\n\r\nstatic uint8_T c4_j_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_b_is_active_c4_mpclib, const char_T *c4_identifier)\r\n{\r\n  uint8_T c4_y;\r\n  emlrtMsgIdentifier c4_thisId;\r\n  c4_thisId.fIdentifier = c4_identifier;\r\n  c4_thisId.fParent = NULL;\r\n  c4_y = c4_k_emlrt_marshallIn(chartInstance, sf_mex_dup\r\n    (c4_b_is_active_c4_mpclib), &c4_thisId);\r\n  sf_mex_destroy(&c4_b_is_active_c4_mpclib);\r\n  return c4_y;\r\n}\r\n\r\nstatic uint8_T c4_k_emlrt_marshallIn(SFc4_mpclibInstanceStruct *chartInstance,\r\n  const mxArray *c4_u, const emlrtMsgIdentifier *c4_parentId)\r\n{\r\n  uint8_T c4_y;\r\n  uint8_T c4_u0;\r\n  sf_mex_import(c4_parentId, sf_mex_dup(c4_u), &c4_u0, 1, 3, 0U, 0, 0U, 0);\r\n  c4_y = c4_u0;\r\n  sf_mex_destroy(&c4_u);\r\n  return c4_y;\r\n}\r\n\r\nstatic void init_dsm_address_info(SFc4_mpclibInstanceStruct *chartInstance)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\n#ifdef utFree\r\n#undef utFree\r\n#endif\r\n\r\n#ifdef utMalloc\r\n#undef utMalloc\r\n#endif\r\n\r\n#ifdef __cplusplus\r\n\r\nextern \"C\" void *utMalloc(size_t size);\r\nextern \"C\" void utFree(void*);\r\n\r\n#else\r\n\r\nextern void *utMalloc(size_t size);\r\nextern void utFree(void*);\r\n\r\n#endif\r\n\r\nvoid sf_c4_mpclib_get_check_sum(mxArray *plhs[])\r\n{\r\n  ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(2060684023U);\r\n  ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3607261543U);\r\n  ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(4175904135U);\r\n  ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(1907083303U);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_get_autoinheritance_info(void)\r\n{\r\n  const char *autoinheritanceFields[] = { \"checksum\", \"inputs\", \"parameters\",\r\n    \"outputs\", \"locals\" };\r\n\r\n  mxArray *mxAutoinheritanceInfo = mxCreateStructMatrix(1,1,5,\r\n    autoinheritanceFields);\r\n\r\n  {\r\n    mxArray *mxChecksum = mxCreateString(\"W9pU18Rzyx5XpPp6ECbqY\");\r\n    mxSetField(mxAutoinheritanceInfo,0,\"checksum\",mxChecksum);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,2,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"inputs\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,8,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,3,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,3,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,3,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,4,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(1));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,4,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,4,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,5,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,5,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,5,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,6,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,6,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,6,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(2);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,7,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,7,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,7,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"parameters\",mxData);\r\n  }\r\n\r\n  {\r\n    const char *dataFields[] = { \"size\", \"type\", \"complexity\" };\r\n\r\n    mxArray *mxData = mxCreateStructMatrix(1,3,3,dataFields);\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(10);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,0,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,0,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,0,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(6);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,1,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,1,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,1,\"complexity\",mxCreateDoubleScalar(0));\r\n\r\n    {\r\n      mxArray *mxSize = mxCreateDoubleMatrix(1,2,mxREAL);\r\n      double *pr = mxGetPr(mxSize);\r\n      pr[0] = (double)(1);\r\n      pr[1] = (double)(1);\r\n      mxSetField(mxData,2,\"size\",mxSize);\r\n    }\r\n\r\n    {\r\n      const char *typeFields[] = { \"base\", \"fixpt\" };\r\n\r\n      mxArray *mxType = mxCreateStructMatrix(1,1,2,typeFields);\r\n      mxSetField(mxType,0,\"base\",mxCreateDoubleScalar(10));\r\n      mxSetField(mxType,0,\"fixpt\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n      mxSetField(mxData,2,\"type\",mxType);\r\n    }\r\n\r\n    mxSetField(mxData,2,\"complexity\",mxCreateDoubleScalar(0));\r\n    mxSetField(mxAutoinheritanceInfo,0,\"outputs\",mxData);\r\n  }\r\n\r\n  {\r\n    mxSetField(mxAutoinheritanceInfo,0,\"locals\",mxCreateDoubleMatrix(0,0,mxREAL));\r\n  }\r\n\r\n  return(mxAutoinheritanceInfo);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_third_party_uses_info(void)\r\n{\r\n  mxArray * mxcell3p = mxCreateCellMatrix(1,0);\r\n  return(mxcell3p);\r\n}\r\n\r\nmxArray *sf_c4_mpclib_updateBuildInfo_args_info(void)\r\n{\r\n  mxArray *mxBIArgs = mxCreateCellMatrix(1,0);\r\n  return mxBIArgs;\r\n}\r\n\r\nstatic const mxArray *sf_get_sim_state_info_c4_mpclib(void)\r\n{\r\n  const char *infoFields[] = { \"chartChecksum\", \"varInfo\" };\r\n\r\n  mxArray *mxInfo = mxCreateStructMatrix(1, 1, 2, infoFields);\r\n  const char *infoEncStr[] = {\r\n    \"100 S1x4'type','srcId','name','auxInfo'{{M[1],M[21],T\\\"rseq\\\",},{M[1],M[19],T\\\"v\\\",},{M[1],M[20],T\\\"vseq\\\",},{M[8],M[0],T\\\"is_active_c4_mpclib\\\",}}\"\r\n  };\r\n\r\n  mxArray *mxVarInfo = sf_mex_decode_encoded_mx_struct_array(infoEncStr, 4, 10);\r\n  mxArray *mxChecksum = mxCreateDoubleMatrix(1, 4, mxREAL);\r\n  sf_c4_mpclib_get_check_sum(&mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[0], mxChecksum);\r\n  mxSetField(mxInfo, 0, infoFields[1], mxVarInfo);\r\n  return mxInfo;\r\n}\r\n\r\nstatic void chart_debug_initialization(SimStruct *S, unsigned int\r\n  fullDebuggerInitialization)\r\n{\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n    SFc4_mpclibInstanceStruct *chartInstance;\r\n    chartInstance = (SFc4_mpclibInstanceStruct *) ((ChartInfoStruct *)\r\n      (ssGetUserData(S)))->chartInstance;\r\n    if (ssIsFirstInitCond(S) && fullDebuggerInitialization==1) {\r\n      /* do this only if simulation is starting */\r\n      {\r\n        unsigned int chartAlreadyPresent;\r\n        chartAlreadyPresent = sf_debug_initialize_chart\r\n          (sfGlobalDebugInstanceStruct,\r\n           _mpclibMachineNumber_,\r\n           4,\r\n           1,\r\n           1,\r\n           13,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           0,\r\n           &(chartInstance->chartNumber),\r\n           &(chartInstance->instanceNumber),\r\n           ssGetPath(S),\r\n           (void *)S);\r\n        if (chartAlreadyPresent==0) {\r\n          /* this is the first instance */\r\n          init_script_number_translation(_mpclibMachineNumber_,\r\n            chartInstance->chartNumber);\r\n          sf_debug_set_chart_disable_implicit_casting\r\n            (sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\r\n             chartInstance->chartNumber,1);\r\n          sf_debug_set_chart_event_thresholds(sfGlobalDebugInstanceStruct,\r\n            _mpclibMachineNumber_,\r\n            chartInstance->chartNumber,\r\n            0,\r\n            0,\r\n            0);\r\n          _SFD_SET_DATA_PROPS(0,2,0,1,\"rseq\");\r\n          _SFD_SET_DATA_PROPS(1,2,0,1,\"vseq\");\r\n          _SFD_SET_DATA_PROPS(2,1,1,0,\"ref\");\r\n          _SFD_SET_DATA_PROPS(3,1,1,0,\"md\");\r\n          _SFD_SET_DATA_PROPS(4,2,0,1,\"v\");\r\n          _SFD_SET_DATA_PROPS(5,10,0,0,\"nv\");\r\n          _SFD_SET_DATA_PROPS(6,10,0,0,\"ny\");\r\n          _SFD_SET_DATA_PROPS(7,10,0,0,\"p\");\r\n          _SFD_SET_DATA_PROPS(8,10,0,0,\"yoff\");\r\n          _SFD_SET_DATA_PROPS(9,10,0,0,\"voff\");\r\n          _SFD_SET_DATA_PROPS(10,10,0,0,\"no_md\");\r\n          _SFD_SET_DATA_PROPS(11,10,0,0,\"no_ref\");\r\n          _SFD_SET_DATA_PROPS(12,10,0,0,\"openloopflag\");\r\n          _SFD_STATE_INFO(0,0,2);\r\n          _SFD_CH_SUBSTATE_COUNT(0);\r\n          _SFD_CH_SUBSTATE_DECOMP(0);\r\n        }\r\n\r\n        _SFD_CV_INIT_CHART(0,0,0,0);\r\n\r\n        {\r\n          _SFD_CV_INIT_STATE(0,0,0,0,0,0,NULL,NULL);\r\n        }\r\n\r\n        _SFD_CV_INIT_TRANS(0,0,NULL,NULL,0,NULL);\r\n\r\n        /* Initialization of MATLAB Function Model Coverage */\r\n        _SFD_CV_INIT_EML(0,1,1,2,0,0,0,0,0,0,0);\r\n        _SFD_CV_INIT_EML_FCN(0,0,\"eML_blk_kernel\",0,-1,856);\r\n        _SFD_CV_INIT_EML_IF(0,1,0,194,225,703,855);\r\n        _SFD_CV_INIT_EML_IF(0,1,1,447,467,577,702);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 10;\r\n          _SFD_SET_DATA_COMPILED_PROPS(0,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_c_sf_marshallOut,(MexInFcnForType)\r\n            c4_c_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 6;\r\n          _SFD_SET_DATA_COMPILED_PROPS(1,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_b_sf_marshallOut,(MexInFcnForType)\r\n            c4_b_sf_marshallIn);\r\n        }\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(2,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)NULL);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(3,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)NULL);\r\n        _SFD_SET_DATA_COMPILED_PROPS(4,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(5,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(6,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(7,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n\r\n        {\r\n          unsigned int dimVector[1];\r\n          dimVector[0]= 2;\r\n          _SFD_SET_DATA_COMPILED_PROPS(8,SF_DOUBLE,1,&(dimVector[0]),0,0,0,0.0,\r\n            1.0,0,0,(MexFcnForType)c4_d_sf_marshallOut,(MexInFcnForType)\r\n            c4_e_sf_marshallIn);\r\n        }\r\n\r\n        _SFD_SET_DATA_COMPILED_PROPS(9,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(10,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(11,SF_DOUBLE,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_sf_marshallOut,(MexInFcnForType)c4_sf_marshallIn);\r\n        _SFD_SET_DATA_COMPILED_PROPS(12,SF_UINT8,0,NULL,0,0,0,0.0,1.0,0,0,\r\n          (MexFcnForType)c4_e_sf_marshallOut,(MexInFcnForType)c4_f_sf_marshallIn);\r\n\r\n        {\r\n          real_T *c4_md;\r\n          real_T *c4_v;\r\n          real_T (*c4_rseq)[10];\r\n          real_T (*c4_vseq)[6];\r\n          real_T (*c4_ref)[2];\r\n          c4_v = (real_T *)ssGetOutputPortSignal(chartInstance->S, 3);\r\n          c4_md = (real_T *)ssGetInputPortSignal(chartInstance->S, 1);\r\n          c4_ref = (real_T (*)[2])ssGetInputPortSignal(chartInstance->S, 0);\r\n          c4_vseq = (real_T (*)[6])ssGetOutputPortSignal(chartInstance->S, 2);\r\n          c4_rseq = (real_T (*)[10])ssGetOutputPortSignal(chartInstance->S, 1);\r\n          _SFD_SET_DATA_VALUE_PTR(0U, *c4_rseq);\r\n          _SFD_SET_DATA_VALUE_PTR(1U, *c4_vseq);\r\n          _SFD_SET_DATA_VALUE_PTR(2U, *c4_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(3U, c4_md);\r\n          _SFD_SET_DATA_VALUE_PTR(4U, c4_v);\r\n          _SFD_SET_DATA_VALUE_PTR(5U, &chartInstance->c4_nv);\r\n          _SFD_SET_DATA_VALUE_PTR(6U, &chartInstance->c4_ny);\r\n          _SFD_SET_DATA_VALUE_PTR(7U, &chartInstance->c4_p);\r\n          _SFD_SET_DATA_VALUE_PTR(8U, chartInstance->c4_yoff);\r\n          _SFD_SET_DATA_VALUE_PTR(9U, &chartInstance->c4_voff);\r\n          _SFD_SET_DATA_VALUE_PTR(10U, &chartInstance->c4_no_md);\r\n          _SFD_SET_DATA_VALUE_PTR(11U, &chartInstance->c4_no_ref);\r\n          _SFD_SET_DATA_VALUE_PTR(12U, &chartInstance->c4_openloopflag);\r\n        }\r\n      }\r\n    } else {\r\n      sf_debug_reset_current_state_configuration(sfGlobalDebugInstanceStruct,\r\n        _mpclibMachineNumber_,chartInstance->chartNumber,\r\n        chartInstance->instanceNumber);\r\n    }\r\n  }\r\n}\r\n\r\nstatic const char* sf_get_instance_specialization(void)\r\n{\r\n  return \"xf8liFQGgsdDdPF7ystbhB\";\r\n}\r\n\r\nstatic void sf_opaque_initialize_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  chart_debug_initialization(((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S,\r\n    0);\r\n  initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n  initialize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_enable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  enable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_disable_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  disable_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nstatic void sf_opaque_gateway_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  sf_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern const mxArray* sf_internal_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_raw2high\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = (mxArray*) get_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)\r\n    chartInfo->chartInstance);         /* raw sim ctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_raw2high'.\\n\");\r\n  }\r\n\r\n  return plhs[0];\r\n}\r\n\r\nextern void sf_internal_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  ChartInfoStruct *chartInfo = (ChartInfoStruct*) ssGetUserData(S);\r\n  mxArray *plhs[1] = { NULL };\r\n\r\n  mxArray *prhs[4];\r\n  int mxError = 0;\r\n  prhs[0] = mxCreateString(\"chart_simctx_high2raw\");\r\n  prhs[1] = mxCreateDoubleScalar(ssGetSFuncBlockHandle(S));\r\n  prhs[2] = mxDuplicateArray(st);      /* high level simctx */\r\n  prhs[3] = (mxArray*) sf_get_sim_state_info_c4_mpclib();/* state var info */\r\n  mxError = sf_mex_call_matlab(1, plhs, 4, prhs, \"sfprivate\");\r\n  mxDestroyArray(prhs[0]);\r\n  mxDestroyArray(prhs[1]);\r\n  mxDestroyArray(prhs[2]);\r\n  mxDestroyArray(prhs[3]);\r\n  if (mxError || plhs[0] == NULL) {\r\n    sf_mex_error_message(\"Stateflow Internal Error: \\nError calling 'chart_simctx_high2raw'.\\n\");\r\n  }\r\n\r\n  set_sim_state_c4_mpclib((SFc4_mpclibInstanceStruct*)chartInfo->chartInstance,\r\n    mxDuplicateArray(plhs[0]));\r\n  mxDestroyArray(plhs[0]);\r\n}\r\n\r\nstatic const mxArray* sf_opaque_get_sim_state_c4_mpclib(SimStruct* S)\r\n{\r\n  return sf_internal_get_sim_state_c4_mpclib(S);\r\n}\r\n\r\nstatic void sf_opaque_set_sim_state_c4_mpclib(SimStruct* S, const mxArray *st)\r\n{\r\n  sf_internal_set_sim_state_c4_mpclib(S, st);\r\n}\r\n\r\nstatic void sf_opaque_terminate_c4_mpclib(void *chartInstanceVar)\r\n{\r\n  if (chartInstanceVar!=NULL) {\r\n    SimStruct *S = ((SFc4_mpclibInstanceStruct*) chartInstanceVar)->S;\r\n    if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n      sf_clear_rtw_identifier(S);\r\n      unload_mpclib_optimization_info();\r\n    }\r\n\r\n    finalize_c4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n    utFree((void *)chartInstanceVar);\r\n    ssSetUserData(S,NULL);\r\n  }\r\n}\r\n\r\nstatic void sf_opaque_init_subchart_simstructs(void *chartInstanceVar)\r\n{\r\n  initSimStructsc4_mpclib((SFc4_mpclibInstanceStruct*) chartInstanceVar);\r\n}\r\n\r\nextern unsigned int sf_machine_global_initializer_called(void);\r\nstatic void mdlProcessParameters_c4_mpclib(SimStruct *S)\r\n{\r\n  int i;\r\n  for (i=0;i<ssGetNumRunTimeParams(S);i++) {\r\n    if (ssGetSFcnParamTunable(S,i)) {\r\n      ssUpdateDlgParamAsRunTimeParam(S,i);\r\n    }\r\n  }\r\n\r\n  if (sf_machine_global_initializer_called()) {\r\n    initialize_params_c4_mpclib((SFc4_mpclibInstanceStruct*)(((ChartInfoStruct *)\r\n      ssGetUserData(S))->chartInstance));\r\n  }\r\n}\r\n\r\nstatic void mdlSetWorkWidths_c4_mpclib(SimStruct *S)\r\n{\r\n  /* Actual parameters from chart:\r\n     no_md no_ref nv ny openloopflag p voff yoff\r\n   */\r\n  const char_T *rtParamNames[] = { \"no_md\", \"no_ref\", \"nv\", \"ny\", \"openloopflag\",\r\n    \"p\", \"voff\", \"yoff\" };\r\n\r\n  ssSetNumRunTimeParams(S,ssGetSFcnParamsCount(S));\r\n\r\n  /* registration for no_md*/\r\n  ssRegDlgParamAsRunTimeParam(S, 0, 0, rtParamNames[0], SS_DOUBLE);\r\n\r\n  /* registration for no_ref*/\r\n  ssRegDlgParamAsRunTimeParam(S, 1, 1, rtParamNames[1], SS_DOUBLE);\r\n\r\n  /* registration for nv*/\r\n  ssRegDlgParamAsRunTimeParam(S, 2, 2, rtParamNames[2], SS_DOUBLE);\r\n\r\n  /* registration for ny*/\r\n  ssRegDlgParamAsRunTimeParam(S, 3, 3, rtParamNames[3], SS_DOUBLE);\r\n\r\n  /* registration for openloopflag*/\r\n  ssRegDlgParamAsRunTimeParam(S, 4, 4, rtParamNames[4], SS_BOOLEAN);\r\n\r\n  /* registration for p*/\r\n  ssRegDlgParamAsRunTimeParam(S, 5, 5, rtParamNames[5], SS_DOUBLE);\r\n\r\n  /* registration for voff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 6, 6, rtParamNames[6], SS_DOUBLE);\r\n\r\n  /* registration for yoff*/\r\n  ssRegDlgParamAsRunTimeParam(S, 7, 7, rtParamNames[7], SS_DOUBLE);\r\n  if (sim_mode_is_rtw_gen(S) || sim_mode_is_external(S)) {\r\n    mxArray *infoStruct = load_mpclib_optimization_info();\r\n    int_T chartIsInlinable =\r\n      (int_T)sf_is_chart_inlinable(S,sf_get_instance_specialization(),infoStruct,\r\n      4);\r\n    ssSetStateflowIsInlinable(S,chartIsInlinable);\r\n    ssSetRTWCG(S,sf_rtw_info_uint_prop(S,sf_get_instance_specialization(),\r\n                infoStruct,4,\"RTWCG\"));\r\n    ssSetEnableFcnIsTrivial(S,1);\r\n    ssSetDisableFcnIsTrivial(S,1);\r\n    ssSetNotMultipleInlinable(S,sf_rtw_info_uint_prop(S,\r\n      sf_get_instance_specialization(),infoStruct,4,\r\n      \"gatewayCannotBeInlinedMultipleTimes\"));\r\n    sf_update_buildInfo(S,sf_get_instance_specialization(),infoStruct,4);\r\n    if (chartIsInlinable) {\r\n      ssSetInputPortOptimOpts(S, 0, SS_REUSABLE_AND_LOCAL);\r\n      ssSetInputPortOptimOpts(S, 1, SS_REUSABLE_AND_LOCAL);\r\n      sf_mark_chart_expressionable_inputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,2);\r\n      sf_mark_chart_reusable_outputs(S,sf_get_instance_specialization(),\r\n        infoStruct,4,3);\r\n    }\r\n\r\n    {\r\n      unsigned int outPortIdx;\r\n      for (outPortIdx=1; outPortIdx<=3; ++outPortIdx) {\r\n        ssSetOutputPortOptimizeInIR(S, outPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    {\r\n      unsigned int inPortIdx;\r\n      for (inPortIdx=0; inPortIdx < 2; ++inPortIdx) {\r\n        ssSetInputPortOptimizeInIR(S, inPortIdx, 1U);\r\n      }\r\n    }\r\n\r\n    sf_set_rtw_dwork_info(S,sf_get_instance_specialization(),infoStruct,4);\r\n    ssSetHasSubFunctions(S,!(chartIsInlinable));\r\n  } else {\r\n  }\r\n\r\n  ssSetOptions(S,ssGetOptions(S)|SS_OPTION_WORKS_WITH_CODE_REUSE);\r\n  ssSetChecksum0(S,(1010599357U));\r\n  ssSetChecksum1(S,(1840766416U));\r\n  ssSetChecksum2(S,(2527524482U));\r\n  ssSetChecksum3(S,(3455074465U));\r\n  ssSetmdlDerivatives(S, NULL);\r\n  ssSetExplicitFCSSCtrl(S,1);\r\n  ssSupportsMultipleExecInstances(S,1);\r\n}\r\n\r\nstatic void mdlRTW_c4_mpclib(SimStruct *S)\r\n{\r\n  if (sim_mode_is_rtw_gen(S)) {\r\n    ssWriteRTWStrParam(S, \"StateflowChartType\", \"Embedded MATLAB\");\r\n  }\r\n}\r\n\r\nstatic void mdlStart_c4_mpclib(SimStruct *S)\r\n{\r\n  SFc4_mpclibInstanceStruct *chartInstance;\r\n  chartInstance = (SFc4_mpclibInstanceStruct *)utMalloc(sizeof\r\n    (SFc4_mpclibInstanceStruct));\r\n  memset(chartInstance, 0, sizeof(SFc4_mpclibInstanceStruct));\r\n  if (chartInstance==NULL) {\r\n    sf_mex_error_message(\"Could not allocate memory for chart instance.\");\r\n  }\r\n\r\n  chartInstance->chartInfo.chartInstance = chartInstance;\r\n  chartInstance->chartInfo.isEMLChart = 1;\r\n  chartInstance->chartInfo.chartInitialized = 0;\r\n  chartInstance->chartInfo.sFunctionGateway = sf_opaque_gateway_c4_mpclib;\r\n  chartInstance->chartInfo.initializeChart = sf_opaque_initialize_c4_mpclib;\r\n  chartInstance->chartInfo.terminateChart = sf_opaque_terminate_c4_mpclib;\r\n  chartInstance->chartInfo.enableChart = sf_opaque_enable_c4_mpclib;\r\n  chartInstance->chartInfo.disableChart = sf_opaque_disable_c4_mpclib;\r\n  chartInstance->chartInfo.getSimState = sf_opaque_get_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.setSimState = sf_opaque_set_sim_state_c4_mpclib;\r\n  chartInstance->chartInfo.getSimStateInfo = sf_get_sim_state_info_c4_mpclib;\r\n  chartInstance->chartInfo.zeroCrossings = NULL;\r\n  chartInstance->chartInfo.outputs = NULL;\r\n  chartInstance->chartInfo.derivatives = NULL;\r\n  chartInstance->chartInfo.mdlRTW = mdlRTW_c4_mpclib;\r\n  chartInstance->chartInfo.mdlStart = mdlStart_c4_mpclib;\r\n  chartInstance->chartInfo.mdlSetWorkWidths = mdlSetWorkWidths_c4_mpclib;\r\n  chartInstance->chartInfo.extModeExec = NULL;\r\n  chartInstance->chartInfo.restoreLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.restoreBeforeLastMajorStepConfiguration = NULL;\r\n  chartInstance->chartInfo.storeCurrentConfiguration = NULL;\r\n  chartInstance->S = S;\r\n  ssSetUserData(S,(void *)(&(chartInstance->chartInfo)));/* register the chart instance with simstruct */\r\n  init_dsm_address_info(chartInstance);\r\n  if (!sim_mode_is_rtw_gen(S)) {\r\n  }\r\n\r\n  sf_opaque_init_subchart_simstructs(chartInstance->chartInfo.chartInstance);\r\n  chart_debug_initialization(S,1);\r\n}\r\n\r\nvoid c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data)\r\n{\r\n  switch (method) {\r\n   case SS_CALL_MDL_START:\r\n    mdlStart_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_SET_WORK_WIDTHS:\r\n    mdlSetWorkWidths_c4_mpclib(S);\r\n    break;\r\n\r\n   case SS_CALL_MDL_PROCESS_PARAMETERS:\r\n    mdlProcessParameters_c4_mpclib(S);\r\n    break;\r\n\r\n   default:\r\n    /* Unhandled method */\r\n    sf_mex_error_message(\"Stateflow Internal Error:\\n\"\r\n                         \"Error calling c4_mpclib_method_dispatcher.\\n\"\r\n                         \"Can't handle method %d.\\n\", method);\r\n    break;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/c4_mpclib.h",
    "content": "#ifndef __c4_mpclib_h__\r\n#define __c4_mpclib_h__\r\n\r\n/* Include files */\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n\r\n/* Type Definitions */\r\n#ifndef typedef_SFc4_mpclibInstanceStruct\r\n#define typedef_SFc4_mpclibInstanceStruct\r\n\r\ntypedef struct {\r\n  SimStruct *S;\r\n  ChartInfoStruct chartInfo;\r\n  uint32_T chartNumber;\r\n  uint32_T instanceNumber;\r\n  int32_T c4_sfEvent;\r\n  boolean_T c4_isStable;\r\n  boolean_T c4_doneDoubleBufferReInit;\r\n  uint8_T c4_is_active_c4_mpclib;\r\n  real_T c4_nv;\r\n  real_T c4_ny;\r\n  real_T c4_p;\r\n  real_T c4_yoff[2];\r\n  real_T c4_voff;\r\n  real_T c4_no_md;\r\n  real_T c4_no_ref;\r\n  boolean_T c4_openloopflag;\r\n} SFc4_mpclibInstanceStruct;\r\n\r\n#endif                                 /*typedef_SFc4_mpclibInstanceStruct*/\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n\r\n/* Function Definitions */\r\nextern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\nextern void c4_mpclib_method_dispatcher(SimStruct *S, int_T method, void *data);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/mpclib_sfun.bat",
    "content": "@echo off\r\r\nrem MSVC100OPTS.BAT\r\r\nrem\r\r\nrem    Compile and link options used for building MEX-files\r\r\nrem    using the Microsoft Visual C++ compiler version 10.0\r\r\nrem\r\r\nrem    $Revision: 1.1.6.5 $  $Date: 2012/07/23 18:50:42 $\r\r\nrem    Copyright 2007-2009 The MathWorks, Inc.\r\r\nrem\r\r\nrem StorageVersion: 1.0\r\r\nrem C++keyFileName: MSVC100OPTS.BAT\r\r\nrem C++keyName: Microsoft Visual C++ 2010\r\r\nrem C++keyManufacturer: Microsoft\r\r\nrem C++keyVersion: 10.0\r\r\nrem C++keyLanguage: C++\r\r\nrem C++keyLinkerName: Microsoft Visual C++ 2010\r\r\nrem C++keyLinkerVersion: 10.0\r\r\nrem\r\r\nrem ********************************************************************\r\r\nrem General parameters\r\r\nrem ********************************************************************\r\r\n\r\r\nset MATLAB=%MATLAB%\r\r\nset VSINSTALLDIR=C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\r\r\nset VCINSTALLDIR=%VSINSTALLDIR%\\VC\r\r\nrem In this case, LINKERDIR is being used to specify the location of the SDK\r\r\nset LINKERDIR=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\\r\r\nset PATH=%VCINSTALLDIR%\\bin\\amd64;%VCINSTALLDIR%\\bin;%VCINSTALLDIR%\\VCPackages;%VSINSTALLDIR%\\Common7\\IDE;%VSINSTALLDIR%\\Common7\\Tools;%LINKERDIR%\\bin\\x64;%LINKERDIR%\\bin;%MATLAB_BIN%;%PATH%\r\r\nset INCLUDE=%VCINSTALLDIR%\\INCLUDE;%VCINSTALLDIR%\\ATLMFC\\INCLUDE;%LINKERDIR%\\include;%INCLUDE%\r\r\nset LIB=%VCINSTALLDIR%\\LIB\\amd64;%VCINSTALLDIR%\\ATLMFC\\LIB\\amd64;%LINKERDIR%\\lib\\x64;%MATLAB%\\extern\\lib\\win64;%LIB%\r\r\nset MW_TARGET_ARCH=win64\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Compiler parameters\r\r\nrem ********************************************************************\r\r\nset COMPILER=cl\r\r\nset COMPFLAGS=/c /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD\r\r\nset OPTIMFLAGS=/O2 /Oy- /DNDEBUG\r\r\nset DEBUGFLAGS=/Z7\r\r\nset NAME_OBJECT=/Fo\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Linker parameters\r\r\nrem ********************************************************************\r\r\nset LIBLOC=%MATLAB%\\extern\\lib\\win64\\microsoft\r\r\nset LINKER=link\r\r\nset LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:\"%LIBLOC%\" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /manifest /incremental:NO /implib:\"%LIB_NAME%.x\" /MAP:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\nset LINKOPTIMFLAGS=\r\r\nset LINKDEBUGFLAGS=/debug /PDB:\"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb\"\r\r\nset LINK_FILE=\r\r\nset LINK_LIB=\r\r\nset NAME_OUTPUT=/out:\"%OUTDIR%%MEX_NAME%%MEX_EXT%\"\r\r\nset RSP_FILE_INDICATOR=@\r\r\n\r\r\nrem ********************************************************************\r\r\nrem Resource compiler parameters\r\r\nrem ********************************************************************\r\r\nset RC_COMPILER=rc /fo \"%OUTDIR%mexversion.res\"\r\r\nset RC_LINKER=\r\r\n\r\r\nset POSTLINK_CMDS=del \"%LIB_NAME%.x\" \"%LIB_NAME%.exp\"\r\r\nset POSTLINK_CMDS1=mt -outputresource:\"%OUTDIR%%MEX_NAME%%MEX_EXT%;2\" -manifest \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS2=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest\"\r\r\nset POSTLINK_CMDS3=del \"%OUTDIR%%MEX_NAME%%MEX_EXT%.map\"\r\r\n\r\nnmake -f mpclib_sfun.mak\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/mpclib_sfun.c",
    "content": "/* Include files */\r\n\r\n#include \"mpclib_sfun.h\"\r\n#include \"mpclib_sfun_debug_macros.h\"\r\n#include \"c3_mpclib.h\"\r\n#include \"c4_mpclib.h\"\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\n\r\n/* Variable Definitions */\r\nuint32_T _mpclibMachineNumber_;\r\n\r\n/* Function Declarations */\r\n\r\n/* Function Definitions */\r\nvoid mpclib_initializer(void)\r\n{\r\n}\r\n\r\nvoid mpclib_terminator(void)\r\n{\r\n}\r\n\r\n/* SFunction Glue Code */\r\nunsigned int sf_mpclib_method_dispatcher(SimStruct *simstructPtr, unsigned int\r\n  chartFileNumber, const char* specsCksum, int_T method, void *data)\r\n{\r\n  if (chartFileNumber==3) {\r\n    c3_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  if (chartFileNumber==4) {\r\n    c4_mpclib_method_dispatcher(simstructPtr, method, data);\r\n    return 1;\r\n  }\r\n\r\n  return 0;\r\n}\r\n\r\nunsigned int sf_mpclib_process_check_sum_call( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[20];\r\n  if (nrhs<1 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the checksum */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"sf_get_check_sum\"))\r\n    return 0;\r\n  plhs[0] = mxCreateDoubleMatrix( 1,4,mxREAL);\r\n  if (nrhs>2 && mxIsChar(prhs[1])) {\r\n    mxGetString(prhs[1], commandName,sizeof(commandName)/sizeof(char));\r\n    commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n    if (!strcmp(commandName,\"library\")) {\r\n      char machineName[100];\r\n      mxGetString(prhs[2], machineName,sizeof(machineName)/sizeof(char));\r\n      machineName[(sizeof(machineName)/sizeof(char)-1)] = '\\0';\r\n      if (!strcmp(machineName,\"mpclib\")) {\r\n        if (nrhs==3) {\r\n          ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(280417916U);\r\n          ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(3737324946U);\r\n          ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(1201209290U);\r\n          ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(640267377U);\r\n        } else if (nrhs==4) {\r\n          unsigned int chartFileNumber;\r\n          chartFileNumber = (unsigned int)mxGetScalar(prhs[3]);\r\n          switch (chartFileNumber) {\r\n           case 3:\r\n            {\r\n              extern void sf_c3_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c3_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           case 4:\r\n            {\r\n              extern void sf_c4_mpclib_get_check_sum(mxArray *plhs[]);\r\n              sf_c4_mpclib_get_check_sum(plhs);\r\n              break;\r\n            }\r\n\r\n           default:\r\n            ((real_T *)mxGetPr((plhs[0])))[0] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[1] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[2] = (real_T)(0.0);\r\n            ((real_T *)mxGetPr((plhs[0])))[3] = (real_T)(0.0);\r\n          }\r\n        } else {\r\n          return 0;\r\n        }\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  } else {\r\n    return 0;\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_autoinheritance_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[32];\r\n  char aiChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]) )\r\n    return 0;\r\n\r\n  /* Possible call to get the autoinheritance_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_autoinheritance_info\"))\r\n    return 0;\r\n  mxGetString(prhs[2], aiChksum,sizeof(aiChksum)/sizeof(char));\r\n  aiChksum[(sizeof(aiChksum)/sizeof(char)-1)] = '\\0';\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(aiChksum, \"j6VEDD3XqIorodiPjwvoYF\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c3_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(aiChksum, \"W9pU18Rzyx5XpPp6ECbqY\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_get_autoinheritance_info(void);\r\n          plhs[0] = sf_c4_mpclib_get_autoinheritance_info();\r\n          break;\r\n        }\r\n\r\n        plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_get_eml_resolved_functions_info( int nlhs, mxArray *\r\n  plhs[], int nrhs, const mxArray * prhs[] )\r\n{\r\n\r\n#ifdef MATLAB_MEX_FILE\r\n\r\n  char commandName[64];\r\n  if (nrhs<2 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the get_eml_resolved_functions_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_eml_resolved_functions_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        extern const mxArray *sf_c3_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c3_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        extern const mxArray *sf_c4_mpclib_get_eml_resolved_functions_info(void);\r\n        mxArray *persistentMxArray = (mxArray *)\r\n          sf_c4_mpclib_get_eml_resolved_functions_info();\r\n        plhs[0] = mxDuplicateArray(persistentMxArray);\r\n        mxDestroyArray(persistentMxArray);\r\n        break;\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n\r\n#else\r\n\r\n  return 0;\r\n\r\n#endif\r\n\r\n}\r\n\r\nunsigned int sf_mpclib_third_party_uses_info( int nlhs, mxArray * plhs[], int\r\n  nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the third_party_uses_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_third_party_uses_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"tyXL61drY84iZIuMyIrmK\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c3_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"xf8liFQGgsdDdPF7ystbhB\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_third_party_uses_info(void);\r\n          plhs[0] = sf_c4_mpclib_third_party_uses_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nunsigned int sf_mpclib_updateBuildInfo_args_info( int nlhs, mxArray * plhs[],\r\n  int nrhs, const mxArray * prhs[] )\r\n{\r\n  char commandName[64];\r\n  char tpChksum[64];\r\n  if (nrhs<3 || !mxIsChar(prhs[0]))\r\n    return 0;\r\n\r\n  /* Possible call to get the updateBuildInfo_args_info */\r\n  mxGetString(prhs[0], commandName,sizeof(commandName)/sizeof(char));\r\n  commandName[(sizeof(commandName)/sizeof(char)-1)] = '\\0';\r\n  mxGetString(prhs[2], tpChksum,sizeof(tpChksum)/sizeof(char));\r\n  tpChksum[(sizeof(tpChksum)/sizeof(char)-1)] = '\\0';\r\n  if (strcmp(commandName,\"get_updateBuildInfo_args_info\"))\r\n    return 0;\r\n\r\n  {\r\n    unsigned int chartFileNumber;\r\n    chartFileNumber = (unsigned int)mxGetScalar(prhs[1]);\r\n    switch (chartFileNumber) {\r\n     case 3:\r\n      {\r\n        if (strcmp(tpChksum, \"tyXL61drY84iZIuMyIrmK\") == 0) {\r\n          extern mxArray *sf_c3_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c3_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     case 4:\r\n      {\r\n        if (strcmp(tpChksum, \"xf8liFQGgsdDdPF7ystbhB\") == 0) {\r\n          extern mxArray *sf_c4_mpclib_updateBuildInfo_args_info(void);\r\n          plhs[0] = sf_c4_mpclib_updateBuildInfo_args_info();\r\n          break;\r\n        }\r\n      }\r\n\r\n     default:\r\n      plhs[0] = mxCreateDoubleMatrix(0,0,mxREAL);\r\n    }\r\n  }\r\n\r\n  return 1;\r\n}\r\n\r\nvoid mpclib_debug_initialize(struct SfDebugInstanceStruct* debugInstance)\r\n{\r\n  _mpclibMachineNumber_ = sf_debug_initialize_machine(debugInstance,\"mpclib\",\r\n    \"sfun\",1,2,0,0,0);\r\n  sf_debug_set_machine_event_thresholds(debugInstance,_mpclibMachineNumber_,0,0);\r\n  sf_debug_set_machine_data_thresholds(debugInstance,_mpclibMachineNumber_,0);\r\n}\r\n\r\nvoid mpclib_register_exported_symbols(SimStruct* S)\r\n{\r\n}\r\n\r\nstatic mxArray* sRtwOptimizationInfoStruct= NULL;\r\nmxArray* load_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct==NULL) {\r\n    sRtwOptimizationInfoStruct = sf_load_rtw_optimization_info(\"mpclib\",\r\n      \"mpc_nonlinear_ss\");\r\n    mexMakeArrayPersistent(sRtwOptimizationInfoStruct);\r\n  }\r\n\r\n  return(sRtwOptimizationInfoStruct);\r\n}\r\n\r\nvoid unload_mpclib_optimization_info(void)\r\n{\r\n  if (sRtwOptimizationInfoStruct!=NULL) {\r\n    mxDestroyArray(sRtwOptimizationInfoStruct);\r\n    sRtwOptimizationInfoStruct = NULL;\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/mpclib_sfun.h",
    "content": "#ifndef __mpclib_sfun_h__\r\n#define __mpclib_sfun_h__\r\n\r\n/* Include files */\r\n#define S_FUNCTION_NAME                sf_sfun\r\n#include \"sfc_sf.h\"\r\n#include \"sfc_mex.h\"\r\n#include \"rtwtypes.h\"\r\n#include \"multiword_types.h\"\r\n#include \"sfcdebug.h\"\r\n#define rtInf                          (mxGetInf())\r\n#define rtMinusInf                     (-(mxGetInf()))\r\n#define rtNaN                          (mxGetNaN())\r\n#define rtIsNaN(X)                     ((int)mxIsNaN(X))\r\n#define rtIsInf(X)                     ((int)mxIsInf(X))\r\n\r\nstruct SfDebugInstanceStruct;\r\nextern struct SfDebugInstanceStruct* sfGlobalDebugInstanceStruct;\r\n\r\n/* Type Definitions */\r\n\r\n/* Named Constants */\r\n\r\n/* Variable Declarations */\r\nextern uint32_T _mpclibMachineNumber_;\r\nextern real_T _sfTime_;\r\n\r\n/* Variable Definitions */\r\n\r\n/* Function Declarations */\r\nextern void mpclib_initializer(void);\r\nextern void mpclib_terminator(void);\r\n\r\n/* Function Definitions */\r\n\r\n/* We load infoStruct for rtw_optimation_info on demand in mdlSetWorkWidths and\r\n   free it immediately in mdlStart. Given that this is machine-wide as\r\n   opposed to chart specific, we use NULL check to make sure it gets loaded\r\n   and unloaded once per machine even though the  methods mdlSetWorkWidths/mdlStart\r\n   are chart/instance specific. The following methods abstract this out. */\r\nextern mxArray* load_mpclib_optimization_info(void);\r\nextern void unload_mpclib_optimization_info(void);\r\n\r\n#endif\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/mpclib_sfun.mak",
    "content": "# ------------------- Required for MSVC nmake ---------------------------------\r\n# This file should be included at the top of a MAKEFILE as follows:\r\n\r\n\r\nCPU = AMD64\r\n!include <ntwin32.mak>\r\n\r\nMACHINE     = mpclib\r\nTARGET      = sfun\r\nCHART_SRCS \t= c3_mpclib.c c4_mpclib.c\r\nMACHINE_SRC\t= mpclib_sfun.c\r\nMACHINE_REG = \r\nMAKEFILE    = mpclib_sfun.mak\r\nMATLAB_ROOT\t= C:\\Program Files\\MATLAB\\R2013b\r\nBUILDARGS   =\r\n\r\n#--------------------------- Tool Specifications ------------------------------\r\n#\r\n#\r\nMSVC_ROOT1 = $(MSDEVDIR:SharedIDE=vc)\r\nMSVC_ROOT2 = $(MSVC_ROOT1:SHAREDIDE=vc)\r\nMSVC_ROOT  = $(MSVC_ROOT2:sharedide=vc)\r\n\r\n# Compiler tool locations, CC, LD, LIBCMD:\r\nCC     = cl.exe\r\nLD     = link.exe\r\nLIBCMD = lib.exe\r\n#------------------------------ Include/Lib Path ------------------------------\r\n\r\nUSER_INCLUDES   = \r\nAUX_INCLUDES   = \r\nMLSLSF_INCLUDES = \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\extern\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\simulink\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\rtw\\c\\src\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\include\" \\\r\n    /I \"C:\\Program Files\\MATLAB\\R2013b\\toolbox\\stateflow\\src\\sf_runtime\\export\\include\\sf_runtime\" \r\n\r\nCOMPILER_INCLUDES = /I \"$(MSVC_ROOT)\\include\"\r\n\r\nTHIRD_PARTY_INCLUDES   = \r\nINCLUDE_PATH = $(USER_INCLUDES) $(AUX_INCLUDES) $(MLSLSF_INCLUDES)\\\r\n $(THIRD_PARTY_INCLUDES)\r\nLIB_PATH     = \"$(MSVC_ROOT)\\lib\"\r\n\r\nCFLAGS = /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD \r\nLDFLAGS = /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction  \r\n#----------------------------- Source Files -----------------------------------\r\n\r\nREQ_SRCS  =  $(MACHINE_SRC) $(MACHINE_REG) $(CHART_SRCS)\r\n\r\nUSER_ABS_OBJS =\r\n\r\nAUX_ABS_OBJS =\r\n\r\nTHIRD_PARTY_OBJS =\r\n\r\nREQ_OBJS = $(REQ_SRCS:.cpp=.obj)\r\nREQ_OBJS2 = $(REQ_OBJS:.c=.obj)\r\nOBJS = $(REQ_OBJS2) $(USER_ABS_OBJS) $(AUX_ABS_OBJS) $(THIRD_PARTY_OBJS)\r\nOBJLIST_FILE = mpclib_sfun.mol\r\nSFCLIB = \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\mex\\lib\\win64\\sfc_mex.lib\" \"C:\\Program Files\\MATLAB\\R2013b\\stateflow\\c\\debugger\\lib\\win64\\sfc_debug.lib\" \r\nAUX_LNK_OBJS =     \r\nUSER_LIBS = \r\nLINK_MACHINE_LIBS = \r\nBLAS_LIBS = \"C:\\Program Files\\MATLAB\\R2013b\\extern\\lib\\win64\\microsoft\\libmwblas.lib\" \r\nTHIRD_PARTY_LIBS = \r\n\r\n#--------------------------------- Rules --------------------------------------\r\n\r\n$(MACHINE)_$(TARGET).lib : $(MAKEFILE) $(OBJS) $(SFCLIB) $(AUX_LNK_OBJS) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Linking ...\r\n\t$(LD) -lib /OUT:$(MACHINE)_$(TARGET).lib @$(OBJLIST_FILE) $(USER_LIBS) $(THIRD_PARTY_LIBS)\r\n\t@echo ### Created Stateflow library $@\r\n.c.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n.cpp.obj :\r\n\t@echo ### Compiling \"$<\"\r\n\t$(CC) $(CFLAGS) $(INCLUDE_PATH) \"$<\"\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/mpclib_sfun.mol",
    "content": "mpclib_sfun.obj\r\nc3_mpclib.obj\r\nc4_mpclib.obj\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/mpclib_sfun_debug_macros.h",
    "content": "#ifndef __SF_DEBUG_MACROS_H__\r\n#define __SF_DEBUG_MACROS_H__\r\n\r\nextern unsigned int _mpclibMachineNumber_;\r\n#define _SFD_SET_DATA_VALUE_PTR(v1,v2)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),NULL);\r\n#define _SFD_UNSET_DATA_VALUE_PTR(v1)\\\r\n\tsf_debug_unset_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1);\r\n#define _SFD_SET_DATA_VALUE_PTR_VAR_DIM(v1,v2,v3)\\\r\n\tsf_debug_set_instance_data_value_ptr(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,v1,(void *)(v2),(void *)(v3));\r\n#define _SFD_DATA_RANGE_CHECK_MIN_MAX(dVal,dNum,dMin,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_min_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin,(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK_MIN(dVal,dNum,dMin)\\\r\n                      sf_debug_data_range_error_wrapper_min(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMin)\r\n#define _SFD_DATA_RANGE_CHECK_MAX(dVal,dNum,dMax)\\\r\n                      sf_debug_data_range_error_wrapper_max(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal),(double)dMax)\r\n#define _SFD_DATA_RANGE_CHECK(dVal,dNum)\\\r\n                      sf_debug_data_range_wrapper(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             dNum,(double)(dVal))\r\n#define _SFD_DATA_READ_BEFORE_WRITE_CHECK(dNum,dVal)\\\r\n                      sf_debug_read_before_write_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (unsigned int)(dNum),(bool)dVal)\r\n#define _SFD_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#define _SFD_RUNTIME_SIZE_MISMATCH_CHECK(v1,v2,v3,v4,v5) \\\r\n                      sf_debug_data_runtime_size_mismatch_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(v2),(unsigned int)(v3),(int)(v4),(int)(v5))\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#ifdef INT_TYPE_64_IS_SUPPORTED\r\n#define _SFD_EML_ARRAY_BOUNDS_CHECK_INT64(v1,v2,v3,v4,v5,v6) \\\r\n                      sf_debug_eml_data_array_bounds_error_check_int64(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(int64_T)(v2),(int)(v3),(int)(v4),(int)(v5),(int)(v6))\r\n#endif\r\n#define _SFD_INTEGER_CHECK(v1,v2) \\\r\n                      sf_debug_integer_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NOT_NAN_CHECK(v1,v2) \\\r\n                      sf_debug_not_nan_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_NON_NEGATIVE_CHECK(v1,v2) \\\r\n                      sf_debug_non_negative_check(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),(double)(v2))\r\n#define _SFD_CAST_TO_UINT8(v1) \\\r\n                      sf_debug_cast_to_uint8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT16(v1) \\\r\n                      sf_debug_cast_to_uint16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_UINT32(v1) \\\r\n                      sf_debug_cast_to_uint32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT8(v1) \\\r\n                      sf_debug_cast_to_int8_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT16(v1) \\\r\n                      sf_debug_cast_to_int16_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_INT32(v1) \\\r\n                      sf_debug_cast_to_int32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_CAST_TO_SINGLE(v1) \\\r\n                      sf_debug_cast_to_real32_T(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n                                             (v1),0,0)\r\n#define _SFD_TRANSITION_CONFLICT(v1,v2) sf_debug_transition_conflict_error(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2)\r\n#define _SFD_ANIMATE() sf_debug_animate(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER)\r\n#define _SFD_CHART_CALL(v1,v2,v3,v4) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,v1,v2,v3,v4,\\\r\n0,NULL,_sfTime_,1)\r\n#define _SFD_CC_CALL(v2,v3,v4) _SFD_CHART_CALL(CHART_OBJECT,v2,v3,v4)\r\n#define _SFD_CS_CALL(v2,v3,v4) _SFD_CHART_CALL(STATE_OBJECT,v2,v3,v4)\r\n#define _SFD_CT_CALL(v2,v3,v4) _SFD_CHART_CALL(TRANSITION_OBJECT,v2,v3,v4)\r\n#define _SFD_CE_CALL(v2,v3,v4) _SFD_CHART_CALL(EVENT_OBJECT,v2,v3,v4)\r\n#define _SFD_EML_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,0)\r\n#define _SFD_SCRIPT_TRANSLATION(v1,v2,v3) sf_debug_set_script_translation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nv1,v2,v3)\r\n#define _SFD_SCRIPT_CALL(v1,v2,v3) eml_debug_line_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nv1,v2,\\\r\nv3,_sfTime_,1)\r\n#define _SFD_CCP_CALL(v3,v4,v5,v6) sf_debug_call(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\nCHART_OBJECT,TRANSITION_OBJECT,TRANSITION_GUARD_COVERAGE_TAG,v3,v6,\\\r\nv4,NULL,_sfTime_,(unsigned int)(v5))\r\n#define _SFD_STATE_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),STATE_OBJECT,(v4))\r\n#define _SFD_TRANS_TEMPORAL_THRESHOLD(v1,v2,v4) sf_debug_temporal_threshold(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\nCHARTINSTANCE_CHARTNUMBER,\\\r\nCHARTINSTANCE_INSTANCENUMBER,\\\r\n(unsigned int)(v1),(v2),TRANSITION_OBJECT,(v4))\r\n#define CV_EVAL(v1,v2,v3,v4) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(boolean_T)(v4))\r\n#define CV_CHART_EVAL(v2,v3,v4) CV_EVAL(CHART_OBJECT,(v2),(v3),(v4))\r\n#define CV_STATE_EVAL(v2,v3,v4) CV_EVAL(STATE_OBJECT,(v2),(v3),(v4))\r\n#define CV_TRANSITION_EVAL(v1,v2) cv_eval_point(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  TRANSITION_OBJECT,(v1),0,((v2)!=0))\r\n#define CV_RELATIONAL_EVAL(v1,v2,v3,v4,v5,v6,v7)  cv_eval_relational(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n#define CV_SATURATION_EVAL(v1,v2,v3,v4,v5)  cv_eval_saturation(sfGlobalDebugInstanceStruct,_mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n#define CV_SATURATION_ACCUM(v1,v2,v3,v4)  cv_saturation_accum(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n#define CV_TESTOBJECTIVE_EVAL(v1,v2,v3,v4)  cv_eval_testobjective(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4))\r\n\r\n/* Coverage Macros for MATLAB  */\r\n#define CV_EML_EVAL(v1,v2,v3,v4,v5) cv_eml_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(int)(v5))\r\n#define CV_EML_FCN(v2,v3) CV_EML_EVAL(CV_EML_FCN_CHECK,(v2),1,(v3),0)\r\n#define CV_EML_TESTOBJECTIVE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_TESTOBJECTIVE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SATURATION_ACCUM(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SATURATION_ACCUM_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_IF(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_IF_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_FOR(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_FOR_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_WHILE(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_WHILE_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_SWITCH(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_SWITCH_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_EML_COND(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_COND_CHECK,(v2),(v3),(v4),((v5) != 0))\r\n#define CV_EML_MCDC(v2,v3,v4,v5) CV_EML_EVAL(CV_EML_MCDC_CHECK,(v2),(v3),(v4),(v5))\r\n#define CV_SCRIPT_EVAL(v1,v2,v3,v4) cv_script_eval(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(int)(v4))\r\n#define CV_SCRIPT_FCN(v2,v3) CV_SCRIPT_EVAL(CV_SCRIPT_FCN_CHECK,(v2),(v3),0)\r\n#define CV_SCRIPT_TESTOBJECTIVE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_TESTOBJECTIVE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SATURATION_ACCUM(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SATURATION_ACCUM_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_IF(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_IF_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_FOR(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_FOR_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_WHILE(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_WHILE_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_SWITCH(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_SWITCH_CHECK,(v2),(v3),(v4))\r\n#define CV_SCRIPT_COND(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_COND_CHECK,(v2),(v3),((v4) != 0))\r\n#define CV_SCRIPT_MCDC(v2,v3,v4) CV_SCRIPT_EVAL(CV_SCRIPT_MCDC_CHECK,(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_EML(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_FCN(v1,v2,v3,v4,v5,v6) cv_eml_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_SATURATION(v1,v2,v3,v4,v5,v6) cv_eml_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_IF(v1,v2,v3,v4,v5,v6,v7) cv_eml_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7))\r\n\r\n#define _SFD_CV_INIT_EML_FOR(v1,v2,v3,v4,v5,v6) cv_eml_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_WHILE(v1,v2,v3,v4,v5,v6) cv_eml_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11) cv_eml_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10),(v11))\r\n\r\n#define _SFD_CV_INIT_EML_RELATIONAL(v1,v2,v3,v4,v5,v6) cv_eml_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_EML_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8,v9) cv_eml_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9))\r\n\r\n#define _SFD_CV_INIT_SCRIPT(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_script(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FCN(v1,v2,v3,v4,v5,v6) cv_script_init_fcn(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_TESTOBJECTIVE(v1,v2,v3,v4,v5,v6) cv_script_init_testobjective(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SATURATION(v1,v2,v3,v4,v5) cv_script_init_saturation(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n       CHARTINSTANCE_CHARTNUMBER,\\\r\n       CHARTINSTANCE_INSTANCENUMBER,\\\r\n       (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_IF(v1,v2,v3,v4,v5,v6) cv_script_init_if(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_FOR(v1,v2,v3,v4,v5) cv_script_init_for(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_WHILE(v1,v2,v3,v4,v5) cv_script_init_while(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_MCDC(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) cv_script_init_mcdc(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8),(v9),(v10))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_RELATIONAL(v1,v2,v3,v4,v5) cv_script_init_relational(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_SCRIPT_SWITCH(v1,v2,v3,v4,v5,v6,v7,v8) cv_script_init_switch(sfGlobalDebugInstanceStruct, \\\r\n       _mpclibMachineNumber_,\\\r\n\t\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t\t  (v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n\r\n#define _SFD_SET_DATA_PROPS(dataNumber,dataScope,isInputData,isOutputData,dataName)\\\r\n sf_debug_set_chart_data_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(dataNumber),(dataScope),(isInputData),(isOutputData),(dataName))\r\n#define _SFD_SET_DATA_COMPILED_PROPS(dataNumber,dataType,numDims,dimArray,isFixedPoint,isSigned,wordLength,bias,slope,exponent,complexity,mexOutFcn, mexInFcn)\\\r\n sf_debug_set_chart_data_compiled_props(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t(dataNumber),(dataType),(numDims),(dimArray),(isFixedPoint),(isSigned),(wordLength),(bias),(slope),(exponent),(complexity),(mexOutFcn),(mexInFcn))\r\n#define _SFD_STATE_INFO(v1,v2,v3)\\\r\n\tsf_debug_set_chart_state_info(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_CH_SUBSTATE_INDEX(v1,v2)\\\r\n\tsf_debug_set_chart_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_ST_SUBSTATE_INDEX(v1,v2,v3)\\\r\n   sf_debug_set_chart_state_substate_index(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2),(v3))\r\n#define _SFD_ST_SUBSTATE_COUNT(v1,v2)\\\r\n\tsf_debug_set_chart_state_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n#define _SFD_DATA_CHANGE_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_data_with_change_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_ENTRY_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_entry_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_STATE_EXIT_EVENT_COUNT(v1,v2) \\\r\n\tsf_debug_set_number_of_states_with_exit_event_for_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\t(v1),(v2))\r\n#define _SFD_EVENT_SCOPE(v1,v2)\\\r\n\tsf_debug_set_chart_event_scope(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\tCHARTINSTANCE_CHARTNUMBER,(v1),(v2))\r\n\r\n#define _SFD_CH_SUBSTATE_COUNT(v1) \\\r\n\tsf_debug_set_chart_substate_count(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n#define _SFD_CH_SUBSTATE_DECOMP(v1) \\\r\n\tsf_debug_set_chart_decomposition(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,(v1))\r\n\r\n#define _SFD_CV_INIT_CHART(v1,v2,v3,v4)\\\r\n sf_debug_cv_init_chart(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE(v1,v2,v3,v4,v5,v6,v7,v8)\\\r\n\tsf_debug_cv_init_state(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,CHARTINSTANCE_CHARTNUMBER,\\\r\n\tCHARTINSTANCE_INSTANCENUMBER,(v1),(v2),(v3),(v4),(v5),(v6),(v7),(v8))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_RELATIONALOP(v1,v2,v3,v4,v5)\\\r\n     sf_debug_cv_init_relationalop(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4),(v5))\r\n\r\n#define _SFD_CV_INIT_STATE_SATURATION(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_saturation(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANSITION_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  TRANSITION_OBJECT,(v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_STATE_TESTOBJECTIVE(v1,v2,v3,v4)\\\r\n     sf_debug_cv_init_testobjectives(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  STATE_OBJECT, (v1),(v2),(v3),(v4))\r\n\r\n#define _SFD_CV_INIT_TRANS(v1,v2,v3,v4,v5,v6)\\\r\n     sf_debug_cv_init_trans(sfGlobalDebugInstanceStruct, _mpclibMachineNumber_,\\\r\n\t  CHARTINSTANCE_CHARTNUMBER,\\\r\n\t  CHARTINSTANCE_INSTANCENUMBER,\\\r\n\t  (v1),(v2),(v3),(v4),(v5),(v6))\r\n#endif\r\n\r\n#define _SFD_SET_MACHINE_DATA_VALUE_PTR(v0,v1,v2) sf_debug_set_machine_data_value_ptr(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_STORE_CURRENT_STATE_CONFIGURATION(v0,v1,v2) sf_debug_store_current_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION(v0,v1,v2) sf_debug_restore_previous_state_configuration(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_RESTORE_PREVIOUS_STATE_CONFIGURATION2(v0,v1,v2) sf_debug_restore_previous_state_configuration2(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_PUSH(v0,v1) sf_debug_symbol_scope_push(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SYMBOL_SCOPE_PUSH_EML(v0,v1,v2,v3,v4) sf_debug_symbol_scope_push_eml(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_SYMBOL_SCOPE_POP() sf_debug_symbol_scope_pop(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SYMBOL_SCOPE_ADD(v0,v1,v2) sf_debug_symbol_scope_add(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML(v0,v1,v2) sf_debug_symbol_scope_add_eml(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(v0,v1,v2,v3) sf_debug_symbol_scope_add_eml_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN(v0,v1,v2,v3,v4,v5) sf_debug_symbol_scope_add_eml_dyn(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5)\r\n#define _SFD_SYMBOL_SCOPE_ADD_EML_DYN_IMPORTABLE(v0,v1,v2,v3,v4,v5,v6) sf_debug_symbol_scope_add_eml_dyn_importable(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6)\r\n#define _SFD_SYMBOL_SCOPE_ADD_VERBOSE(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14) sf_debug_symbol_scope_add_verbose(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14)\r\n#define _SFD_SYMBOL_SWITCH(v0,v1) sf_debug_symbol_switch(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_CHECK_FOR_STATE_INCONSISTENCY(v0,v1,v2) sf_debug_check_for_state_inconsistency(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SET_HONOR_BREAKPOINTS(v0) sf_debug_set_honor_breakpoints(sfGlobalDebugInstanceStruct, v0)\r\n#define _SFD_GET_ANIMATION() sf_debug_get_animation(sfGlobalDebugInstanceStruct)\r\n#define _SFD_SET_ANIMATION(v0) sf_debug_set_animation(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_SIZE_EQ_CHECK_1D(v0,v1) sf_debug_size_eq_check_1d(sfGlobalDebugInstanceStruct,v0,v1)\r\n#define _SFD_SIZE_EQ_CHECK_ND(v0,v1,v2) sf_debug_size_eq_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_EQ_CHECK(v0,v1,v2) sf_debug_dim_size_eq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_DIM_SIZE_GEQ_CHECK(v0,v1,v2) sf_debug_dim_size_geq_check(sfGlobalDebugInstanceStruct,v0,v1,v2)\r\n#define _SFD_SUB_ASSIGN_SIZE_CHECK_ND(v0,v1,v2,v3) sf_debug_sub_assign_size_check_nd(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_MATRIX_MATRIX_INDEX_CHECK(v0,v1,v2,v3) sf_debug_matrix_matrix_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_VECTOR_VECTOR_INDEX_CHECK(v0,v1,v2,v3) sf_debug_vector_vector_index_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3)\r\n#define _SFD_FOR_LOOP_VECTOR_CHECK(v0,v1,v2,v3,v4) sf_debug_for_loop_vector_check(sfGlobalDebugInstanceStruct,v0,v1,v2,v3,v4)\r\n#define _SFD_RUNTIME_ERROR_MSGID(v0) sf_debug_runtime_error_msgid(sfGlobalDebugInstanceStruct,v0)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_ENABLED() sf_debug_transition_conflict_check_enabled(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_BEGIN() sf_debug_transition_conflict_check_begin(sfGlobalDebugInstanceStruct)\r\n#define _SFD_TRANSITION_CONFLICT_CHECK_END() sf_debug_transition_conflict_check_end(sfGlobalDebugInstanceStruct)\r\n#define _SFD_OVERFLOW_DETECTION(v0) sf_debug_overflow_detection(sfGlobalDebugInstanceStruct,v0)\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/multiword_types.h",
    "content": "#ifndef __MULTIWORD_TYPES_H__\r\n#define __MULTIWORD_TYPES_H__\r\n#include \"rtwtypes.h\"\r\n\r\n/*\r\n * MultiWord supporting definitions\r\n */\r\ntypedef long long longlong_T;\r\n\r\n/*\r\n * MultiWord types\r\n */\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} int128m_T;\r\n\r\ntypedef struct {\r\n  int128m_T re;\r\n  int128m_T im;\r\n} cint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[2];\r\n} uint128m_T;\r\n\r\ntypedef struct {\r\n  uint128m_T re;\r\n  uint128m_T im;\r\n} cuint128m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} int192m_T;\r\n\r\ntypedef struct {\r\n  int192m_T re;\r\n  int192m_T im;\r\n} cint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[3];\r\n} uint192m_T;\r\n\r\ntypedef struct {\r\n  uint192m_T re;\r\n  uint192m_T im;\r\n} cuint192m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} int256m_T;\r\n\r\ntypedef struct {\r\n  int256m_T re;\r\n  int256m_T im;\r\n} cint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[4];\r\n} uint256m_T;\r\n\r\ntypedef struct {\r\n  uint256m_T re;\r\n  uint256m_T im;\r\n} cuint256m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} int320m_T;\r\n\r\ntypedef struct {\r\n  int320m_T re;\r\n  int320m_T im;\r\n} cint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[5];\r\n} uint320m_T;\r\n\r\ntypedef struct {\r\n  uint320m_T re;\r\n  uint320m_T im;\r\n} cuint320m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} int384m_T;\r\n\r\ntypedef struct {\r\n  int384m_T re;\r\n  int384m_T im;\r\n} cint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[6];\r\n} uint384m_T;\r\n\r\ntypedef struct {\r\n  uint384m_T re;\r\n  uint384m_T im;\r\n} cuint384m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} int448m_T;\r\n\r\ntypedef struct {\r\n  int448m_T re;\r\n  int448m_T im;\r\n} cint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[7];\r\n} uint448m_T;\r\n\r\ntypedef struct {\r\n  uint448m_T re;\r\n  uint448m_T im;\r\n} cuint448m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} int512m_T;\r\n\r\ntypedef struct {\r\n  int512m_T re;\r\n  int512m_T im;\r\n} cint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[8];\r\n} uint512m_T;\r\n\r\ntypedef struct {\r\n  uint512m_T re;\r\n  uint512m_T im;\r\n} cuint512m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} int576m_T;\r\n\r\ntypedef struct {\r\n  int576m_T re;\r\n  int576m_T im;\r\n} cint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[9];\r\n} uint576m_T;\r\n\r\ntypedef struct {\r\n  uint576m_T re;\r\n  uint576m_T im;\r\n} cuint576m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} int640m_T;\r\n\r\ntypedef struct {\r\n  int640m_T re;\r\n  int640m_T im;\r\n} cint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[10];\r\n} uint640m_T;\r\n\r\ntypedef struct {\r\n  uint640m_T re;\r\n  uint640m_T im;\r\n} cuint640m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} int704m_T;\r\n\r\ntypedef struct {\r\n  int704m_T re;\r\n  int704m_T im;\r\n} cint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[11];\r\n} uint704m_T;\r\n\r\ntypedef struct {\r\n  uint704m_T re;\r\n  uint704m_T im;\r\n} cuint704m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} int768m_T;\r\n\r\ntypedef struct {\r\n  int768m_T re;\r\n  int768m_T im;\r\n} cint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[12];\r\n} uint768m_T;\r\n\r\ntypedef struct {\r\n  uint768m_T re;\r\n  uint768m_T im;\r\n} cuint768m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} int832m_T;\r\n\r\ntypedef struct {\r\n  int832m_T re;\r\n  int832m_T im;\r\n} cint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[13];\r\n} uint832m_T;\r\n\r\ntypedef struct {\r\n  uint832m_T re;\r\n  uint832m_T im;\r\n} cuint832m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} int896m_T;\r\n\r\ntypedef struct {\r\n  int896m_T re;\r\n  int896m_T im;\r\n} cint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[14];\r\n} uint896m_T;\r\n\r\ntypedef struct {\r\n  uint896m_T re;\r\n  uint896m_T im;\r\n} cuint896m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} int960m_T;\r\n\r\ntypedef struct {\r\n  int960m_T re;\r\n  int960m_T im;\r\n} cint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[15];\r\n} uint960m_T;\r\n\r\ntypedef struct {\r\n  uint960m_T re;\r\n  uint960m_T im;\r\n} cuint960m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} int1024m_T;\r\n\r\ntypedef struct {\r\n  int1024m_T re;\r\n  int1024m_T im;\r\n} cint1024m_T;\r\n\r\ntypedef struct {\r\n  uint64_T chunks[16];\r\n} uint1024m_T;\r\n\r\ntypedef struct {\r\n  uint1024m_T re;\r\n  uint1024m_T im;\r\n} cuint1024m_T;\r\n\r\n#endif                                 /* __MULTIWORD_TYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-3/chatp3_MPC_Toolbox_DoubleInt/slprj/_sfprj/mpc_nonlinear_ss/mpclib/sfun/src/rtwtypes.h",
    "content": "#ifndef __RTWTYPES_H__\r\n#define __RTWTYPES_H__\r\n#include \"tmwtypes.h\"\r\n#include \"simstruc_types.h\"\r\n#ifndef POINTER_T\r\n# define POINTER_T\r\n\r\ntypedef void * pointer_T;\r\n\r\n#endif\r\n\r\n#ifndef TRUE\r\n# define TRUE                          (1U)\r\n#endif\r\n\r\n#ifndef FALSE\r\n# define FALSE                         (0U)\r\n#endif\r\n\r\n#ifndef INT64_T\r\n#define INT64_T\r\n\r\ntypedef long long int64_T;\r\n\r\n#endif\r\n\r\n#ifndef UINT64_T\r\n#define UINT64_T\r\n\r\ntypedef unsigned long long uint64_T;\r\n\r\n#endif\r\n\r\n/*===========================================================================*\r\n * Additional complex number type definitions                                           *\r\n *===========================================================================*/\r\n#ifndef CINT64_T\r\n#define CINT64_T\r\n\r\ntypedef struct {\r\n  int64_T re;\r\n  int64_T im;\r\n} cint64_T;\r\n\r\n#endif\r\n\r\n#ifndef CUINT64_T\r\n#define CUINT64_T\r\n\r\ntypedef struct {\r\n  uint64_T re;\r\n  uint64_T im;\r\n} cuint64_T;\r\n\r\n#endif\r\n#endif                                 /* __RTWTYPES_H__ */\r\n"
  },
  {
    "path": "Chapter-4/ReadMe",
    "content": "This folder holds simulation codes for Chapter 4\n\n* chapter4_4_2.m: Matlab code for given path tracking, 第一版中提供的程序，求解速度较慢\n\n* chap4_MPC_GivenPathTracking: Improved Matlab code for given path tracking，改进的程序，优化速度提高\n\n* chap4_MPC_SSM_PathTracking: MPC for general path tracking, use adaptive path fitting with 3rd-order Bezier curve and state-space model\n\n* chap4_MPC_ErrorModel_PathTracking: MPC for general path tracking, use bezier curve fitting and tracking-error model\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/Chapter4_MPC_ErrorModel_PathTracking.par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run291.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 18:56 on September 03, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run291.par`09-01-2019`23:40:42\r\n#FullDataName CarSim Run Control`Chapter4_MPC_ErrorModel_PathTracking`BOOK_MPC_Examples\r\n#VehicleCode Ind_SA\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex138.par`09-01-2019`23:44:56\r\n#FullDataName Models: Simulink`chapt4_MPC_EM_PathCtrackingCtrl`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap4_MPC_ErrorModel_PathTracking\\MPC_ErrorModel_PathTracking.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap4_MPC_ErrorModel_PathTracking\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap4_MPC_ErrorModel_PathTracking\r\nENTER_PARSFILE IO_Channels\\I_Channels\\I_Ch123.par`09-01-2019`23:34:17\r\n#FullDataName I/O Channels: Import`chapt4_SteeringSW_Imports`MPC_BOOK_Sim_Imports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_imports_tab.txt\r\n\r\n#MiscYellow0\r\nIMP_STEER_SW Replace 0.0 1\r\n#ENDMYellow\r\n\r\n#RingCtrl0 2\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Import; { MPC_BOOK_Sim_Imports } chapt4_SteeringSW_Imports\r\n#Library : I/O Channels: Import\r\n#DataSet : chapt4_SteeringSW_Imports\r\n#Category: MPC_BOOK_Sim_Imports\r\n#FileID  : I_Ch123\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:34:17\r\n#VehCode Import Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\I_Channels\\I_Ch123.par\r\n\r\n#BlueLink0 I/O Channels: Import`chapt4_SteeringSW_Imports` MPC_BOOK_Sim_Imports` , Import\r\n\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch123.par`08-24-2019`05:16:35\r\n#FullDataName I/O Channels: Export`AGV_StabilityCtrl_Exports`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Xo\r\nEXP_Yo\r\nEXP_Yaw\r\nEXP_Vx\r\nEXP_Vy\r\nEXP_AV_Y\r\nEXP_Beta\r\nEXP_Steer_L1\r\nEXP_Steer_R1\r\nEXP_Steer_SW\r\nEXP_Ax\r\nEXP_Ay\r\nEXP_AA_Y\r\nEXP_Alpha_L1\r\nEXP_Alpha_L2\r\nEXP_Alpha_R1\r\nEXP_Alpha_R2\r\nEXP_Fz_L1\r\nEXP_Fz_L2\r\nEXP_Fz_R1\r\nEXP_Fz_R2\r\nEXP_Fy_L1\r\nEXP_Fy_L2\r\nEXP_Fy_R1\r\nEXP_Fy_R2\r\nEXP_Fx_L1\r\nEXP_Fx_L2\r\nEXP_Fx_R1\r\nEXP_Fx_R2\r\nEXP_GearStat\r\nEXP_Roll\r\nEXP_AV_R\r\nEXP_AA_R\r\nEXP_Station\r\nEXP_ZCG_TM\r\nEXP_ZCG_SM\r\nEXP_Ay_SM\r\nEXP_AyBf_SM\r\n#MiscYellow0\r\n#Number of Selected Channels: 38\r\n#CHN_NAME: Xo\r\n#CHN_NAME: Yo\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Vy\r\n#CHN_NAME: AV_Y\r\n#CHN_NAME: Beta\r\n#CHN_NAME: Steer_L1\r\n#CHN_NAME: Steer_R1\r\n#CHN_NAME: Steer_SW\r\n#CHN_NAME: Ax\r\n#CHN_NAME: Ay\r\n#CHN_NAME: AA_Y\r\n#CHN_NAME: Alpha_L1\r\n#CHN_NAME: Alpha_L2\r\n#CHN_NAME: Alpha_R1\r\n#CHN_NAME: Alpha_R2\r\n#CHN_NAME: Fz_L1\r\n#CHN_NAME: Fz_L2\r\n#CHN_NAME: Fz_R1\r\n#CHN_NAME: Fz_R2\r\n#CHN_NAME: Fy_L1\r\n#CHN_NAME: Fy_L2\r\n#CHN_NAME: Fy_R1\r\n#CHN_NAME: Fy_R2\r\n#CHN_NAME: Fx_L1\r\n#CHN_NAME: Fx_L2\r\n#CHN_NAME: Fx_R1\r\n#CHN_NAME: Fx_R2\r\n#CHN_NAME: GearStat\r\n#CHN_NAME: Roll\r\n#CHN_NAME: AV_R\r\n#CHN_NAME: AA_R\r\n#CHN_NAME: Station\r\n#CHN_NAME: ZCG_TM\r\n#CHN_NAME: ZCG_SM\r\n#CHN_NAME: Ay_SM\r\n#CHN_NAME: AyBf_SM\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } AGV_StabilityCtrl_Exports\r\n#Library : I/O Channels: Export\r\n#DataSet : AGV_StabilityCtrl_Exports\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch123\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-24-2019 05:16:35\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch123.par\r\n\r\n#BlueLink1 I/O Channels: Export`AGV_StabilityCtrl_Exports` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_EM_PathTrackingCtrl.sim\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt4_MPC_EM_PathCtrackingCtrl\r\n#Library : Models: Simulink\r\n#DataSet : chapt4_MPC_EM_PathCtrackingCtrl\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex138\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:44:56\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex138.par\r\n\r\n#BlueLink12 Models: Simulink`chapt4_MPC_EM_PathCtrackingCtrl` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 291\r\nID_RUN 291\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle165.par`08-23-2019`18:41:30\r\n#FullDataName Vehicle: Assembly`D-Class, SUV LEO-defined`CS D-Class\r\n#VehCode Ind_SA\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 3\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp119.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`D-Class, SUV - Front Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.611\r\n*R_SPRING_R 0.611\r\n*R_DAMPER_L 0.614\r\n*R_DAMPER_R 0.614\r\n*CT_FX_L 4.45e-6\r\n*CT_FX_R 4.45e-6\r\n*CS_FY_L -1.0e-06\r\n*CS_FY_R -1.0e-06\r\n*CS_MZ_L 3.8e-4\r\n*CS_MZ_R 3.8e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 1.5e-5\r\n*CI_FY_R 1.5e-5\r\n*CI_MZ_L 3.1e-5\r\n*CI_MZ_R 3.1e-5\r\n*C_LONG_L 1.6e-5\r\n*C_LONG_R 1.6e-5\r\n*C_LAT_L 1.6e-5\r\n*C_LAT_R 1.6e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.614\r\n*R_JOUNCE_R 0.614\r\n*R_REBOUND_L 0.614\r\n*R_REBOUND_R 0.614\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock102.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big SUV Damping`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE SPLINE\r\n-1410, -7316\r\n-720, -5019\r\n-390, -3395\r\n-210, -2618\r\n-90, -1472\r\n-20, -333\r\n20, 333\r\n90, 870\r\n200, 1145\r\n390, 1607\r\n760, 2623\r\n1160, 3740\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big SUV Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big SUV Damping\r\n#Category:\r\n#FileID  : Shock102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock102.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big SUV Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx107.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 569 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 569\r\n\r\nMX_AUX_COEFFICIENT 569\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 569 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 569 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx107.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 569 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.614\r\nCT_FX_COEFFICIENT 4.45e-6\r\nCS_FY_COEFFICIENT -1.0e-06\r\nCS_MZ_COEFFICIENT 3.8e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.5e-5\r\nCI_MZ_COEFFICIENT 3.1e-5\r\nC_LONG_COEFFICIENT 1.6e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.614\r\nCMP_RSTOP_COEFFICIENT 0.614\r\nENTER_PARSFILE Suspensions\\Springs\\Spring117.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Spring`130 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 130\r\nFS_EXT_COEFFICIENT 130\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 130\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 130 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 130 N/mm\r\n#Category:\r\n#FileID  : Spring117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring117.par\r\n\r\n#BlueLink0 Suspension: Spring`130 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big SUV Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.614\r\nCT_FX_COEFFICIENT 4.45e-6\r\nCS_FY_COEFFICIENT -1.0e-06\r\nCS_MZ_COEFFICIENT 3.8e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.5e-5\r\nCI_MZ_COEFFICIENT 3.1e-5\r\nC_LONG_COEFFICIENT 1.6e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.614\r\nCMP_RSTOP_COEFFICIENT 0.614\r\n#BlueLink3 Suspension: Spring`130 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS D-Class } D-Class, SUV - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : D-Class, SUV - Front Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmp119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp119_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.7 Hz and a front corner weight of 428 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp119_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp119.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`D-Class, SUV - Front Comp.` CS D-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin115.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`D-Class, SUV - Front Suspension`CS D-Class\r\niside 1\r\nL_TRACK 1565\r\nY_CL_SUSP 0\r\nM_US 80\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L -0.2\r\n*TOE_R -0.2\r\n*CAMBER_L -0.3\r\n*CAMBER_R -0.3\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -0.3\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -0.3\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS D-Class } D-Class, SUV - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : D-Class, SUV - Front Suspension\r\n#Category: CS D-Class\r\n#FileID  : IndKin115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin115_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin115_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin115.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`D-Class, SUV - Front Suspension` CS D-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire112.par`08-02-2011`16:42:33\r\n#FullDataName Tire`255/75 R16`Touring Tires\r\nX_LENGTH 394\r\nZ_LENGTH 394\r\nY_LENGTH 255\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup140.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Small SUV`Tires\r\n*ANGLE_Z 180\r\n*ANGLE_Y 0\r\n*ANGLE_X 0\r\n*X_REF_LENGTH 334\r\n*Y_REF_LENGTH 205\r\n*Z_REF_LENGTH 334\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL257.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Tire\r\n#Category: Tires\r\n#FileID  : AniSTL257\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL257.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Small SUV Tire` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL258.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .6 .6 .6\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 50\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL258\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL258.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Small SUV Wheel` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL259.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL259\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL259.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Small SUV Stripe` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL260.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Rotor`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\rotor.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .1 .1 .1\r\n*SPECULAR 0\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Rotor\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Rotor\r\n#Category: Tires\r\n#FileID  : AniSTL260\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL260.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Small SUV Rotor` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nx_ref_length 334\r\ny_ref_length 205\r\nz_ref_length 334\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Small SUV\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Small SUV\r\n#Category: Tires\r\n#FileID  : StlGroup140\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup140.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Small SUV` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 255\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet106.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 1150 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 1150; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 1150 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 1150 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet106.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 1150 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 379\r\nR0 394\r\nFZ_TIRE_COEFFICIENT 470\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 780\r\nVLOW_ALPHA 5\r\nRR_C 0.0042\r\nRR_V 0.000032\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.5\r\nENTER_PARSFILE Tires\\Mz\\TireMz109.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.5, 14.18, 27.44, 39.66, 50.77, 60.75, 69.58, 77.28, 83.85\r\n1, 28.61, 55.37, 80.02, 102.45, 122.6, 140.44, 155.97, 169.22\r\n1.5, 42.17, 81.77, 118.43, 151.95, 182.2, 209.12, 232.69, 252.89\r\n2, 52.19, 101.72, 148.12, 191.09, 230.41, 265.9, 297.44, 324.92\r\n2.5, 56.3, 110.58, 162.37, 211.32, 257.09, 299.38, 337.91, 372.43\r\n3, 54.51, 107.99, 160.11, 210.54, 258.91, 304.87, 348.02, 387.99\r\n3.5, 48.92, 97.71, 146.21, 194.18, 241.35, 287.38, 331.9, 374.51\r\n4, 41.89, 84.25, 127.05, 170.2, 213.52, 256.78, 299.72, 341.99\r\n4.5, 34.92, 70.64, 107.23, 144.67, 182.91, 221.83, 261.26, 300.98\r\n5, 28.7, 58.33, 89.04, 120.86, 153.81, 187.85, 222.93, 258.91\r\n5.5, 23.39, 47.76, 73.27, 99.99, 127.99, 157.28, 187.88, 219.73\r\n6, 18.96, 38.88, 59.94, 82.23, 105.83, 130.8, 157.18, 184.99\r\n6.5, 15.28, 31.48, 48.78, 67.28, 87.08, 108.26, 130.86, 154.95\r\n7, 12.21, 25.31, 39.45, 54.74, 71.3, 89.18, 108.48, 129.26\r\n7.5, 9.65, 20.13, 31.61, 44.2, 57.98, 73.05, 89.48, 107.35\r\n8, 7.49, 15.77, 25, 35.28, 46.7, 59.35, 73.31, 88.65\r\n8.5, 5.65, 12.07, 19.38, 27.69, 37.09, 47.67, 59.49, 72.64\r\n9, 4.09, 8.89, 14.56, 21.19, 28.85, 37.63, 47.61, 58.86\r\n9.5, 2.73, 6.16, 10.41, 15.57, 21.73, 28.96, 37.34, 46.92\r\n10, 1.56, 3.78, 6.8, 10.7, 15.55, 21.43, 28.4, 36.54\r\n10.5, 0.53, 1.71, 3.64, 6.43, 10.14, 14.83, 20.58, 27.44\r\n11, -0.37, -0.12, 0.87, 2.68, 5.37, 9.02, 13.69, 19.43\r\n11.5, -1.17, -1.74, -1.59, -0.65, 1.16, 3.88, 7.59, 12.34\r\n12, -1.89, -3.18, -3.78, -3.61, -2.6, -0.69, 2.16, 6.03\r\n12.5, -2.53, -4.48, -5.74, -6.26, -5.96, -4.78, -2.69, 0.39\r\n13, -3.1, -5.64, -7.5, -8.64, -8.97, -8.46, -7.05, -4.69\r\n13.5, -3.62, -6.68, -9.1, -10.79, -11.7, -11.78, -10.99, -9.26\r\n14, -4.09, -7.64, -10.54, -12.74, -14.17, -14.79, -14.55, -13.41\r\n14.5, -4.52, -8.5, -11.85, -14.51, -16.42, -17.53, -17.8, -17.18\r\n15, -4.91, -9.29, -13.05, -16.13, -18.47, -20.03, -20.76, -20.62\r\n15.5, -5.27, -10.02, -14.16, -17.62, -20.35, -22.32, -23.48, -23.78\r\n16, -5.6, -10.69, -15.17, -18.98, -22.09, -24.43, -25.97, -26.67\r\n16.5, -5.91, -11.3, -16.1, -20.24, -23.68, -26.37, -28.27, -29.34\r\n17, -6.19, -11.87, -16.97, -21.41, -25.16, -28.16, -30.39, -31.81\r\n17.5, -6.45, -12.4, -17.77, -22.49, -26.52, -29.83, -32.36, -34.09\r\n18, -6.7, -12.9, -18.51, -23.5, -27.8, -31.37, -34.19, -36.21\r\n18.5, -6.92, -13.35, -19.21, -24.43, -28.98, -32.81, -35.89, -38.19\r\n19, -7.14, -13.78, -19.86, -25.31, -30.09, -34.16, -37.48, -40.03\r\n19.5, -7.33, -14.18, -20.47, -26.13, -31.12, -35.41, -38.97, -41.75\r\n20, -7.52, -14.56, -21.04, -26.89, -32.09, -36.59, -40.36, -43.36\r\n20.5, -7.7, -14.91, -21.57, -27.61, -33, -37.7, -41.67, -44.88\r\n21, -7.86, -15.25, -22.07, -28.29, -33.86, -38.74, -42.9, -46.3\r\n21.5, -8.02, -15.56, -22.55, -28.93, -34.67, -39.72, -44.05, -47.64\r\n22, -8.16, -15.86, -23, -29.53, -35.43, -40.64, -45.14, -48.91\r\n22.5, -8.3, -16.14, -23.42, -30.1, -36.15, -41.51, -46.18, -50.1\r\n23, -8.43, -16.4, -23.82, -30.64, -36.83, -42.34, -47.15, -51.23\r\n23.5, -8.56, -16.65, -24.2, -31.16, -37.47, -43.13, -48.08, -52.3\r\n24, -8.68, -16.89, -24.56, -31.64, -38.09, -43.87, -48.95, -53.32\r\n24.5, -8.79, -17.12, -24.91, -32.1, -38.67, -44.58, -49.79, -54.28\r\n25, -8.9, -17.33, -25.23, -32.54, -39.23, -45.25, -50.58, -55.2\r\n26, -8.9, -17.33, -25.23, -32.54, -39.23, -45.25, -50.58, -55.2\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 255/75 R16\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireMz109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz109.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`255/75 R16` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy109.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.5, 306.2, 600.88, 882.3, 1149.48, 1401.78, 1638.74, 1860.01, 2065.37\r\n1, 605.83, 1189, 1746.07, 2275.1, 2774.82, 3244.29, 3682.86, 4090.04\r\n1.5, 892.78, 1752.48, 2574.01, 3354.57, 4092.23, 4785.63, 5433.75, 6035.88\r\n2, 1161.8, 2281.06, 3351.23, 4368.63, 5330.76, 6235.81, 7082.44, 7869.65\r\n2.5, 1408.82, 2766.79, 4066.08, 5302.21, 6472.14, 7573.62, 8604.98, 9564.94\r\n3, 1631.13, 3204.39, 4710.78, 6145.16, 7503.95, 8784.53, 9984.87, 11103.43\r\n3.5, 1827.46, 3591.29, 5281.5, 6892.37, 8419.86, 9860.96, 11213.35, 12475.2\r\n4, 1997.83, 3927.42, 5778.04, 7543.42, 9219.14, 10801.85, 12288.92, 13678.27\r\n4.5, 2143.28, 4214.8, 6203.19, 8101.76, 9905.76, 11611.53, 13216.18, 14717.36\r\n5, 2265.63, 4456.89, 6561.91, 8573.68, 10487.15, 12298.4, 14004.3, 15602.28\r\n5.5, 2367.15, 4658.08, 6860.54, 8967.25, 10972.93, 12873.45, 14665.46, 16346.2\r\n6, 2450.32, 4823.16, 7106.01, 9291.39, 11373.81, 13348.99, 15213.38, 16964.05\r\n6.5, 2517.61, 4956.95, 7305.33, 9555.12, 11700.69, 13737.6, 15662.17, 17471.29\r\n7, 2571.36, 5064.02, 7465.19, 9767.1, 11964.03, 14051.42, 16025.47, 17882.95\r\n7.5, 2613.7, 5148.56, 7591.68, 9935.26, 12173.47, 14301.67, 16315.97, 18213.03\r\n8, 2646.53, 5214.25, 7690.26, 10066.67, 12337.64, 14498.42, 16545.06, 18474.15\r\n8.5, 2671.48, 5264.33, 7765.64, 10167.52, 12464.06, 14650.49, 16722.78, 18677.46\r\n9, 2689.94, 5301.54, 7821.89, 10243.09, 12559.22, 14765.48, 16857.78, 18832.62\r\n9.5, 2703.09, 5328.18, 7862.41, 10297.87, 12628.63, 14849.86, 16957.46, 18947.88\r\n10, 2711.91, 5346.21, 7890.07, 10335.61, 12676.9, 14909.09, 17028.06, 19030.22\r\n10.5, 2717.21, 5357.22, 7907.26, 10359.46, 12707.9, 14947.72, 17074.79, 19085.51\r\n11, 2719.66, 5362.55, 7915.95, 10372.01, 12724.83, 14969.54, 17102.02, 19118.65\r\n11.5, 2719.82, 5363.29, 7917.76, 10375.41, 12730.34, 14977.71, 17113.38, 19133.71\r\n12, 2718.14, 5360.35, 7914.04, 10371.43, 12726.63, 14974.81, 17111.84, 19134.07\r\n12.5, 2714.98, 5354.46, 7905.89, 10361.53, 12715.5, 14963, 17099.89, 19122.53\r\n13, 2710.66, 5346.22, 7894.2, 10346.89, 12698.43, 14944.03, 17079.56, 19101.4\r\n13.5, 2705.42, 5336.13, 7879.72, 10328.49, 12676.64, 14919.36, 17052.55, 19072.58\r\n14, 2699.47, 5324.6, 7863.04, 10307.15, 12651.12, 14890.18, 17020.22, 19037.64\r\n14.5, 2692.97, 5311.96, 7844.68, 10283.53, 12622.71, 14857.47, 16983.73, 18997.87\r\n15, 2686.05, 5298.47, 7825.03, 10258.15, 12592.06, 14822.04, 16944, 18954.35\r\n15.5, 2678.82, 5284.36, 7804.42, 10231.46, 12559.74, 14784.54, 16901.81, 18907.95\r\n16, 2671.39, 5269.8, 7783.12, 10203.82, 12526.19, 14745.53, 16857.79, 18859.39\r\n16.5, 2663.81, 5254.95, 7761.36, 10175.53, 12491.79, 14705.44, 16812.45, 18809.27\r\n17, 2656.15, 5239.92, 7739.31, 10146.83, 12456.83, 14664.64, 16766.24, 18758.07\r\n17.5, 2648.45, 5224.82, 7717.11, 10117.91, 12421.57, 14623.42, 16719.48, 18706.2\r\n18, 2640.76, 5209.71, 7694.9, 10088.94, 12386.19, 14582.03, 16672.46, 18653.97\r\n18.5, 2633.11, 5194.66, 7672.76, 10060.03, 12350.87, 14540.66, 16625.43, 18601.65\r\n19, 2625.51, 5179.72, 7650.77, 10031.3, 12315.73, 14499.47, 16578.55, 18549.47\r\n19.5, 2618, 5164.94, 7628.98, 10002.82, 12280.89, 14458.59, 16531.99, 18497.6\r\n20, 2610.59, 5150.33, 7607.46, 9974.67, 12246.41, 14418.12, 16485.87, 18446.16\r\n20.5, 2603.28, 5135.93, 7586.23, 9946.89, 12212.37, 14378.14, 16440.27, 18395.29\r\n21, 2596.09, 5121.76, 7565.32, 9919.51, 12178.83, 14338.72, 16395.28, 18345.07\r\n21.5, 2589.02, 5107.83, 7544.76, 9892.59, 12145.8, 14299.89, 16350.96, 18295.56\r\n22, 2582.08, 5094.15, 7524.57, 9866.12, 12113.34, 14261.7, 16307.34, 18246.82\r\n22.5, 2575.28, 5080.72, 7504.74, 9840.14, 12081.45, 14224.18, 16264.47, 18198.88\r\n23, 2568.6, 5067.56, 7485.29, 9814.64, 12050.15, 14187.34, 16222.36, 18151.78\r\n23.5, 2562.07, 5054.66, 7466.23, 9789.64, 12019.45, 14151.19, 16181.02, 18105.54\r\n24, 2555.66, 5042.02, 7447.55, 9765.14, 11989.35, 14115.74, 16140.48, 18060.16\r\n24.5, 2549.39, 5029.64, 7429.26, 9741.13, 11959.86, 14080.99, 16100.72, 18015.65\r\n25, 2543.26, 5017.52, 7411.34, 9717.62, 11930.96, 14046.94, 16061.75, 17972.01\r\n26, 2543.26, 5017.52, 7411.34, 9717.62, 11930.96, 14046.94, 16061.75, 17972.01\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 255/75 R16\r\n#Library : Tire: Lateral Force\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireFy109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy109.par\r\n\r\n#BlueLink1 Tire: Lateral Force`255/75 R16` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx109.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.02, 1258.94, 2468.09, 3619.86, 4710.05, 5735.83, 6695.23, 7586.84, 8409.7\r\n0.04, 1993.59, 3916.87, 5758.7, 7512.6, 9173.94, 10739.23, 12205.7, 13571.17\r\n0.06, 2344.28, 4612.4, 6792.08, 8875.96, 10858.65, 12735.94, 14504.35, 16161.01\r\n0.08, 2516.82, 4955.83, 7304.36, 9554.74, 11701.28, 13739.45, 15665.47, 17476.15\r\n0.1, 2608.63, 5139.03, 7578.4, 9918.95, 12154.85, 14281.44, 16294.79, 18191.53\r\n0.12, 2660.42, 5242.66, 7733.87, 10126.21, 12413.81, 14591.92, 16656.52, 18604.16\r\n0.14, 2690.36, 5302.78, 7824.43, 10247.46, 12565.96, 14775.15, 16870.97, 18849.91\r\n0.16, 2707.35, 5337.12, 7876.51, 10317.67, 12654.69, 14882.77, 16997.83, 18996.3\r\n0.18, 2716.2, 5355.23, 7904.34, 10355.71, 12703.42, 14942.66, 17069.34, 19079.87\r\n0.2, 2719.69, 5362.66, 7916.21, 10372.54, 12725.75, 14971.02, 17104.25, 19121.85\r\n0.22, 2719.56, 5362.84, 7917.22, 10374.93, 12730.08, 14977.86, 17114.17, 19135.39\r\n0.24, 2716.91, 5357.99, 7910.7, 10367.29, 12721.88, 14969.69, 17106.6, 19129.01\r\n0.26, 2712.5, 5349.62, 7898.89, 10352.57, 12704.84, 14950.89, 17086.64, 19108.47\r\n0.28, 2706.85, 5338.77, 7883.33, 10332.85, 12681.51, 14924.53, 17057.82, 19077.79\r\n0.3, 2700.35, 5326.18, 7865.15, 10309.6, 12653.73, 14892.78, 17022.68, 19039.82\r\n0.32, 2693.25, 5312.4, 7845.14, 10283.88, 12622.82, 14857.24, 16983.05, 18996.67\r\n0.34, 2685.76, 5297.81, 7823.91, 10256.48, 12589.77, 14819.06, 16940.29, 18949.87\r\n0.36, 2678.02, 5282.71, 7801.88, 10227.99, 12555.32, 14779.14, 16895.42, 18900.59\r\n0.38, 2670.15, 5267.33, 7779.4, 10198.86, 12520, 14738.13, 16849.22, 18849.7\r\n0.4, 2662.23, 5251.82, 7756.71, 10169.41, 12484.24, 14696.53, 16802.26, 18797.88\r\n0.42, 2654.32, 5236.32, 7734, 10139.9, 12448.36, 14654.73, 16755, 18745.62\r\n0.44, 2646.46, 5220.92, 7711.41, 10110.51, 12412.59, 14613.01, 16707.76, 18693.33\r\n0.46, 2638.7, 5205.69, 7689.05, 10081.4, 12377.13, 14571.59, 16660.82, 18641.29\r\n0.48, 2631.05, 5190.68, 7667, 10052.68, 12342.09, 14530.64, 16614.36, 18589.74\r\n0.5, 2623.54, 5175.93, 7645.33, 10024.41, 12307.6, 14490.29, 16568.55, 18538.86\r\n0.52, 2616.18, 5161.47, 7624.06, 9996.66, 12273.71, 14450.63, 16523.48, 18488.76\r\n0.54, 2608.98, 5147.31, 7603.24, 9969.48, 12240.5, 14411.72, 16479.23, 18439.55\r\n0.56, 2601.95, 5133.48, 7582.88, 9942.89, 12207.98, 14373.62, 16435.88, 18391.3\r\n0.58, 2595.09, 5119.98, 7563, 9916.91, 12176.2, 14336.35, 16393.45, 18344.04\r\n0.6, 2588.4, 5106.81, 7543.6, 9891.54, 12145.16, 14299.94, 16351.97, 18297.83\r\n0.62, 2581.88, 5093.97, 7524.68, 9866.8, 12114.87, 14264.38, 16311.46, 18252.66\r\n0.64, 2575.53, 5081.47, 7506.24, 9842.68, 12085.33, 14229.7, 16271.92, 18208.56\r\n0.66, 2569.35, 5069.29, 7488.28, 9819.18, 12056.54, 14195.87, 16233.34, 18165.51\r\n0.68, 2563.33, 5057.43, 7470.79, 9796.28, 12028.47, 14162.9, 16195.72, 18123.52\r\n0.7, 2557.47, 5045.89, 7453.76, 9773.98, 12001.14, 14130.77, 16159.05, 18082.57\r\n0.72, 2551.78, 5034.66, 7437.19, 9752.27, 11974.51, 14099.47, 16123.31, 18042.65\r\n0.74, 2546.23, 5023.73, 7421.05, 9731.13, 11948.58, 14068.97, 16088.48, 18003.73\r\n0.76, 2540.84, 5013.09, 7405.35, 9710.55, 11923.33, 14039.26, 16054.54, 17965.8\r\n0.78, 2535.59, 5002.74, 7390.06, 9690.52, 11898.74, 14010.33, 16021.48, 17928.83\r\n0.8, 2530.49, 4992.66, 7375.18, 9671.01, 11874.79, 13982.14, 15989.26, 17892.79\r\n0.82, 2525.52, 4982.86, 7360.7, 9652.01, 11851.47, 13954.68, 15957.87, 17857.68\r\n0.84, 2520.68, 4973.31, 7346.59, 9633.52, 11828.76, 13927.93, 15927.28, 17823.45\r\n0.86, 2515.97, 4964.02, 7332.86, 9615.5, 11806.63, 13901.87, 15897.47, 17790.09\r\n0.88, 2511.39, 4954.98, 7319.49, 9597.96, 11785.07, 13876.48, 15868.42, 17757.57\r\n0.9, 2506.93, 4946.16, 7306.46, 9580.86, 11764.07, 13851.73, 15840.1, 17725.87\r\n0.92, 2502.58, 4937.58, 7293.77, 9564.21, 11743.6, 13827.61, 15812.5, 17694.95\r\n0.94, 2498.35, 4929.22, 7281.41, 9547.98, 11723.65, 13804.1, 15785.58, 17664.8\r\n0.96, 2494.22, 4921.07, 7269.36, 9532.16, 11704.21, 13781.17, 15759.34, 17635.4\r\n0.98, 2490.2, 4913.13, 7257.62, 9516.74, 11685.25, 13758.82, 15733.74, 17606.72\r\n1, 2486.29, 4905.39, 7246.17, 9501.7, 11666.76, 13737.01, 15708.77, 17578.73\r\n1.02, 2486.29, 4905.39, 7246.17, 9501.7, 11666.76, 13737.01, 15708.77, 17578.73\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 255/75 R16\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireFx109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx109.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`255/75 R16` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff109.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`255/75 R16`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n1127.76475, -5.0637\r\n2255.5295, -9.5404\r\n3383.29425, -13.704\r\n4511.059, -17.6355\r\n5638.82375, -21.3781\r\n6766.5885, -24.9597\r\n7894.35325, -28.3995\r\n9022.118, -31.7123\r\n10149.88275, -34.9094\r\n11277.6475, -38\r\n12405.41225, -40.9917\r\n13533.177, -43.8909\r\n14660.94175, -46.7031\r\n15788.7065, -49.433\r\n16916.47125, -52.0848\r\n18044.236, -54.6622\r\n19172.00075, -57.1685\r\n20299.7655, -59.6066\r\n21427.53025, -61.9791\r\n22555.295, -64.2887\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 255/75 R16\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : CamStiff109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff109.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`255/75 R16` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 255/75 R16\r\n#Library : Tire\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : Tire112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire112_note.txt\r\n1150 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire112_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire112.par\r\n\r\n#BlueLink9 Tire`255/75 R16` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`255/75 R16` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nWRITE_ADD_REFERENCE_FRAME_AXLE\r\nENTER_PARSFILE Suspensions\\Compliance_SA\\SuspCmpSA105.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Solid Axle Compliance, Springs, and Dampers`D-Class, SUV - Rear Solid Axle Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\nL_SPRINGS 1103.33\r\nL_DAMPERS 1103.33\r\n*R_SPRING_L 0.9989\r\n*R_SPRING_R 1.0001\r\n*R_DAMPER_L 1.003\r\n*R_DAMPER_R 0.995\r\n*CT_FX_L 0\r\n*CT_FX_R 0\r\n*CS_FY_L 0\r\n*CS_FY_R 0\r\n*CS_MZ_L 0\r\n*CS_MZ_R 0\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 0\r\n*CI_FY_R 0\r\n*CI_MZ_L 0\r\n*CI_MZ_R 0\r\n*C_LAT_AXLE 5.3133E-04\r\n*C_LONG_AXLE 4.6049E-04\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\nL_JNC_STOPS 1100\r\nL_REB_STOPS 1100\r\n*R_JOUNCE_L 1\r\n*R_JOUNCE_R 1\r\n*R_REBOUND_L 1\r\n*R_REBOUND_R 1\r\n\r\nC_LAT_AXLE_COEFFICIENT 5.3133E-04\r\nC_LONG_AXLE_COEFFICIENT 4.6049E-04\r\nL_SPG_ADJ 0\r\n#BlueLink1 Suspension: Shock Absorber`Big SUV Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx108.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`No Auxiliary Roll Moment`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nMX_AUX_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; No Auxiliary Roll Moment\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : No Auxiliary Roll Moment\r\n#Category:\r\n#FileID  : AuxMx108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx108.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`No Auxiliary Roll Moment` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb107.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+120 mm / -60 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n118, 0\r\n119, 0\r\n120, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-60, -10000\r\n-59, 0\r\n-58, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +120 mm / -60 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +120 mm / -60 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb107.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+120 mm / -60 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.9989\r\nCMP_DAMP_COEFFICIENT 1.003\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT 0\r\nCS_MZ_COEFFICIENT 0\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nCMP_JSTOP_COEFFICIENT 1\r\nCMP_RSTOP_COEFFICIENT 1\r\nENTER_PARSFILE Suspensions\\Springs\\Spring118.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`40 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 40\r\nFS_EXT_COEFFICIENT 40\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 40\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 40 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 40 N/mm\r\n#Category:\r\n#FileID  : Spring118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring118.par\r\n\r\n#BlueLink0 Suspension: Spring`40 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big SUV Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+120 mm / -60 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 1.0001\r\nCMP_DAMP_COEFFICIENT 0.995\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT 0\r\nCS_MZ_COEFFICIENT 0\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 1\r\nCMP_RSTOP_COEFFICIENT 1\r\n#BlueLink3 Suspension: Spring`40 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Solid Axle Compliance, Springs, and Dampers; { CS D-Class } D-Class, SUV - Rear Solid Axle Comp.\r\n#Library : Suspension: Solid Axle Compliance, Springs, and Dampers\r\n#DataSet : D-Class, SUV - Rear Solid Axle Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmpSA105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Solid axle\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance_SA\\SuspCmpSA105.par\r\n\r\n#BlueLink22 Suspension: Solid Axle Compliance, Springs, and Dampers`D-Class, SUV - Rear Solid Axle Comp.` CS D-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Solid\\SaKin105.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Solid Axle System Kinematics`D-Class, SUV - Rear Suspension`CS D-Class\r\nOPT_NL_AXLE 1\r\niside 1\r\nL_TRACK 1565\r\nM_US 100\r\nIA 1.5\r\n*IW_L 0.9\r\n*IW_R 0.9\r\nR_ROLL_STEER 0.1\r\nY_CL_SUSP 0\r\n*TOE_L 0\r\n*TOE_R 0\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nH_CG_AXLE 360\r\n*JNC_DESIGN_L 0\r\n*JNC_DESIGN_R 0\r\nR_US_STR 0\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear Hotchkiss - No Dive`Hotchkiss Rear Axle\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { Hotchkiss Rear Axle } Rear Hotchkiss - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear Hotchkiss - No Dive\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : Dive105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive105_note.txt\r\nGeneric Hotchkiss Rear Axle Dive angle change vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive105.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear Hotchkiss - No Dive` Hotchkiss Rear Axle` , Axle dive\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX105.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear Hotchkiss - Longitudinal Movement`Hotchkiss Rear Axle\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-150, 5.1612\r\n-135, 2.79277\r\n-120, 0.841255\r\n-105, -0.695023\r\n-90, -1.8184\r\n-75, -2.53133\r\n-60, -2.83607\r\n-45, -2.73441\r\n-30, -2.22759\r\n-15, -1.3162\r\n0, 0\r\n15, 1.72199\r\n30, 3.85147\r\n45, 6.39054\r\n60, 9.34103\r\n75, 12.703\r\n90, 16.4714\r\n105, 20.6284\r\n120, 25.1262\r\n135, 29.8517\r\n150, 34.583\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-150, 5.1612\r\n-135, 2.79277\r\n-120, 0.841255\r\n-105, -0.695023\r\n-90, -1.8184\r\n-75, -2.53133\r\n-60, -2.83607\r\n-45, -2.73441\r\n-30, -2.22759\r\n-15, -1.3162\r\n0, 0\r\n15, 1.72199\r\n30, 3.85147\r\n45, 6.39054\r\n60, 9.34103\r\n75, 12.703\r\n90, 16.4714\r\n105, 20.6284\r\n120, 25.1262\r\n135, 29.8517\r\n150, 34.583\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { Hotchkiss Rear Axle } Rear Hotchkiss - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear Hotchkiss - Longitudinal Movement\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : SusX105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX105_note.txt\r\nGeneric Hotchkiss Rear Axle Longitudinal movement vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX105.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear Hotchkiss - Longitudinal Movement` Hotchkiss Rear Axle` , Axle X movement\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL204.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Rear Solid Drive Axle`Misc. Parts\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\misc\\solid_axle.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.502 0.502 0.502\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.007\r\nSET_OFFSET_Z 0\r\nX_REF_LENGTH 1\r\nY_REF_LENGTH 1700\r\nZ_REF_LENGTH 1\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 55\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Misc. Parts } Rear Solid Drive Axle\r\n#Library : Animator: Shape File Link\r\n#DataSet : Rear Solid Drive Axle\r\n#Category: Misc. Parts\r\n#FileID  : AniSTL204\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL204.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Rear Solid Drive Axle` Misc. Parts` , Animator\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear Hotchkiss - No Lateral Movement`Hotchkiss Rear Axle\r\n#RingCtrl0 CONSTANT\r\nSUSP_LAT_CONSTANT 0\r\nSUSP_LAT_AXLE_JOUNCE_CONSTANT 0\r\n#RadioCtrl0 1\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { Hotchkiss Rear Axle } Rear Hotchkiss - No Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear Hotchkiss - No Lateral Movement\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : SusLat105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat105_note.txt\r\nGeneric Hotchkiss Rear Axle Lateral Movement vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat105.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear Hotchkiss - No Lateral Movement` Hotchkiss Rear Axle` , Axle Y movement - jounce\r\n\r\nENTER_PARSFILE Suspensions\\Lateral_Roll\\SusLatR101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position with Roll`Rear Hotchkiss - Lat. Movement vs. Roll`Hotchiss Rear Axle\r\n#RingCtrl0 SPLINE\r\n\r\n! Note: if *TABLE_KEYWORD is not set to \"SUSP_Y_AXLE_ROLL\" then Y values read from the table will be reversed.\r\n*TABLE_KEYWORD SUSP_Y_AXLE_ROLL\r\n\r\n#DiagramOne0\r\nSUSP_Y_AXLE_ROLL_TABLE SPLINE\r\n-10.0528, -16.7928\r\n-8.3636, -14.0137\r\n-6.68194, -11.2296\r\n-5.00627, -8.43574\r\n-3.33505, -5.63126\r\n-1.66679, -2.81808\r\n0, 0\r\n1.66679, 2.81808\r\n3.33505, 5.63126\r\n5.00627, 8.43574\r\n6.68194, 11.2296\r\n8.3636, 14.0137\r\n10.0528, 16.7928\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position with Roll; { Hotchiss Rear Axle } Rear Hotchkiss - Lat. Movement vs. Roll\r\n#Library : Suspension: Lateral Position with Roll\r\n#DataSet : Rear Hotchkiss - Lat. Movement vs. Roll\r\n#Category: Hotchiss Rear Axle\r\n#FileID  : SusLatR101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral_Roll\\SusLatR101_note.txt\r\nGeneric Hotchkiss Rear Axle Lateral Movement vs. Roll\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral_Roll\\SusLatR101_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral_Roll\\SusLatR101.par\r\n\r\n#BlueLink4 Suspension: Lateral Position with Roll`Rear Hotchkiss - Lat. Movement vs. Roll` Hotchiss Rear Axle` , Axle Y movement - roll\r\n\r\nSUSP_AXLE_ROLL_STEER_COEFFICIENT 0.1\r\nY_LENGTH 1565\r\nIW 0.9\r\nA_TOE 0\r\nA_CAMBER 0\r\nJNC_DESIGN 0\r\n\r\niside 2\r\nIW 0.9\r\nA_TOE 0\r\nA_CAMBER 0\r\nJNC_DESIGN 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Solid Axle System Kinematics; { CS D-Class } D-Class, SUV - Rear Suspension\r\n#Library : Suspension: Solid Axle System Kinematics\r\n#DataSet : D-Class, SUV - Rear Suspension\r\n#Category: CS D-Class\r\n#FileID  : SaKin105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Solid Axle\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Solid\\SaKin105_note.txt\r\nGeneric Hotchkiss Rear Axle kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Solid\\SaKin105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Solid\\SaKin105.par\r\n\r\n#BlueLink23 Suspension: Solid Axle System Kinematics`D-Class, SUV - Rear Suspension` CS D-Class` , Rear kinematics (solid axle)\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`255/75 R16` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`255/75 R16` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass113.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`D-Class, SUV Sprung Mass`CS D-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 2600\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 3725\r\nH_H 550\r\nH_CG_SU 650\r\nLX_AXLE 2600\r\nLX_CG_SU 1050\r\nM_SU 1430\r\nIXX_SU 700.7\r\nIYY_SU 2059.2\r\nIZZ_SU 2059.2\r\nIXZ_SU 0\r\nRX_SGUI 0.700\r\nRY_SGUI 1.200\r\nRZ_SGUI 1.200\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1679\r\nY_LENGTH 1820\r\n*HWC_LF 350\r\n*HWC_RF 350\r\n*HWC_LR 330\r\n*HWC_RR 330\r\n\r\nH_WC 330\r\niside 2\r\nH_WC 330\r\niaxle 1\r\niside 1\r\nH_WC 350\r\niside 2\r\nH_WC 350\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS D-Class } D-Class, SUV Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : D-Class, SUV Sprung Mass\r\n#Category: CS D-Class\r\n#FileID  : SprMass113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass113.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`D-Class, SUV Sprung Mass` CS D-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero110.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`D-Class, SUV Aero`CS D-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1300\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 2600\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS D-Class } D-Class, SUV Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : D-Class, SUV Aero\r\n#Category: CS D-Class\r\n#FileID  : Aero110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero110_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero110_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero110.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`D-Class, SUV Aero` CS D-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh116.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`D-Class, SUV`D-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 2619\r\nOBJ_Y_LENGTH 1820\r\nOBJ_Z_LENGTH 1679\r\n*DZ_V -40\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 280\r\n*WHEEL_RATIO 1.25\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_OFFSET_X -2.619\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -2.619\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT -0.04\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup138.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`D-Class, SUV`CS D-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.3\r\n*X_REF_LENGTH 2850\r\n*Y_REF_LENGTH 1900\r\n*Z_REF_LENGTH 1700\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL170.par`08-02-2011`16:43:43\r\n#FullDataName Animator: Shape File Link`SUV: Body`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .5\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Body\r\n#Category: CS SUV\r\n#FileID  : AniSTL170\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:43\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL170.par\r\n\r\n#BlueLink0 Animator: Shape File Link`SUV: Body` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL174.par`08-02-2011`16:43:43\r\n#FullDataName Animator: Shape File Link`SUV: Body Trim (Gray)`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\body_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Body Trim (Gray)\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Body Trim (Gray)\r\n#Category: CS SUV\r\n#FileID  : AniSTL174\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:43\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL174.par\r\n\r\n#BlueLink1 Animator: Shape File Link`SUV: Body Trim (Gray)` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL171.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Details`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Details\r\n#Category: CS SUV\r\n#FileID  : AniSTL171\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL171.par\r\n\r\n#BlueLink2 Animator: Shape File Link`SUV: Details` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL172.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Interior`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\interior.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Interior\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Interior\r\n#Category: CS SUV\r\n#FileID  : AniSTL172\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL172.par\r\n\r\n#BlueLink3 Animator: Shape File Link`SUV: Interior` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL175.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Seats`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Seats\r\n#Category: CS SUV\r\n#FileID  : AniSTL175\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL175.par\r\n\r\n#BlueLink4 Animator: Shape File Link`SUV: Seats` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL176.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Steering Wheel`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Steering Wheel\r\n#Category: CS SUV\r\n#FileID  : AniSTL176\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL176.par\r\n\r\n#BlueLink5 Animator: Shape File Link`SUV: Steering Wheel` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL173.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Windows`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.188 0.188 0.188\r\n*SPECULAR 0.9\r\n*TRANSPARENCY 0.85\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.85\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.9 0.9 0.9\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Windows\r\n#Category: CS SUV\r\n#FileID  : AniSTL173\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL173.par\r\n\r\n#BlueLink6 Animator: Shape File Link`SUV: Windows` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL177.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Driver`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Driver\r\n#Category: CS SUV\r\n#FileID  : AniSTL177\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL177.par\r\n\r\n#BlueLink13 Animator: Shape File Link`SUV: Driver` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nx_ref_length 2850\r\ny_ref_length 1900\r\nz_ref_length 1700\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS D-Class } D-Class, SUV\r\n#Library : Animator: Shape Assembly\r\n#DataSet : D-Class, SUV\r\n#Category: CS D-Class\r\n#FileID  : StlGroup138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup138.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`D-Class, SUV` CS D-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL261.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Brake Lights (D-Class)`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.01\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.3\r\nX_REF_LENGTH 2850\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1700\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Brake Lights (D-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Brake Lights (D-Class)\r\n#Category: CS SUV\r\n#FileID  : AniSTL261\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL261.par\r\n\r\n#BlueLink3 Animator: Shape File Link`SUV: Brake Lights (D-Class)` CS SUV` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { D-Class Vehicles } D-Class, SUV\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : D-Class, SUV\r\n#Category: D-Class Vehicles\r\n#FileID  : AniVeh116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh116_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh116_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh116.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles` , Vehicle animator data\r\n\r\nENTER_PARSFILE Powertrain\\4wd\\4WD106.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`150 kW, 6-spd., 4.1 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine110.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`150 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.2\r\n\r\n#CheckBox0 0\r\nOPT_THROTTLE_DELAY 0\r\n\r\nENTER_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par`08-02-2011`16:42:52\r\n#FullDataName Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Fuel rate (kg/sec)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 26, 19 ! columns x rows\r\nFUEL_RATE_CARPET\r\n0, 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1\r\n600, 8e-05, 0.0002, 0.0003, 0.00032, 0.00034, 0.00037, 0.00039, 0.00041, 0.00043, 0.00046, 0.00048, 0.0005, 0.00052, 0.00055, 0.00057, 0.00059, 0.00061, 0.00064, 0.00066, 0.00068, 0.0007, 0.00073, 0.00075, 0.00077, 0.00079, 0.00082\r\n800, 0.00013, 0.0002, 0.0004, 0.00059, 0.00071, 0.0008, 0.00083, 0.00085, 0.00086, 0.00087, 0.00088, 0.00089, 0.0009, 0.00091, 0.00092, 0.00093, 0.00094, 0.00096, 0.00097, 0.00098, 0.00099, 0.001, 0.00101, 0.00102, 0.00103, 0.00104\r\n1000, 0.00016, 0.0002, 0.00039, 0.00062, 0.00079, 0.00091, 0.00099, 0.00104, 0.00107, 0.00108, 0.00109, 0.00111, 0.00112, 0.00113, 0.00114, 0.00115, 0.00117, 0.00118, 0.00119, 0.0012, 0.00121, 0.00123, 0.00124, 0.00125, 0.00126, 0.00127\r\n1200, 0.00016, 0.00021, 0.00039, 0.00064, 0.00088, 0.00104, 0.00114, 0.00123, 0.00128, 0.00131, 0.00133, 0.00134, 0.00135, 0.00137, 0.00138, 0.0014, 0.00141, 0.00142, 0.00144, 0.00145, 0.00147, 0.00148, 0.00149, 0.00151, 0.00152, 0.00154\r\n1400, 0.00017, 0.00023, 0.00039, 0.00066, 0.00091, 0.00113, 0.0013, 0.0014, 0.00148, 0.00153, 0.00156, 0.00158, 0.0016, 0.00161, 0.00163, 0.00165, 0.00167, 0.00168, 0.0017, 0.00172, 0.00174, 0.00175, 0.00177, 0.00179, 0.00181, 0.00182\r\n1600, 0.0002, 0.00026, 0.0004, 0.00066, 0.00095, 0.00119, 0.00139, 0.00154, 0.00164, 0.00173, 0.00178, 0.00181, 0.00183, 0.00184, 0.00186, 0.00188, 0.0019, 0.00192, 0.00194, 0.00195, 0.00197, 0.00199, 0.00201, 0.00203, 0.00205, 0.00207\r\n1800, 0.00021, 0.00028, 0.00039, 0.00067, 0.00095, 0.00124, 0.00147, 0.00166, 0.00178, 0.00189, 0.00195, 0.002, 0.00203, 0.00206, 0.00209, 0.00212, 0.00215, 0.00218, 0.00222, 0.00225, 0.00228, 0.00231, 0.00234, 0.00237, 0.0024, 0.00243\r\n2000, 0.00023, 0.0003, 0.00038, 0.00065, 0.00096, 0.00129, 0.00156, 0.00178, 0.00195, 0.00207, 0.00215, 0.00221, 0.00227, 0.00231, 0.00234, 0.00238, 0.00241, 0.00245, 0.00249, 0.00252, 0.00256, 0.00259, 0.00263, 0.00267, 0.0027, 0.00274\r\n2200, 0.00025, 0.00033, 0.00041, 0.00065, 0.00098, 0.0013, 0.00162, 0.00189, 0.00212, 0.00226, 0.00239, 0.00246, 0.00252, 0.00257, 0.00261, 0.00264, 0.00268, 0.00272, 0.00275, 0.00279, 0.00282, 0.00286, 0.0029, 0.00293, 0.00297, 0.003\r\n2400, 0.00027, 0.00036, 0.00044, 0.00065, 0.00095, 0.00133, 0.00168, 0.00199, 0.00223, 0.0024, 0.00255, 0.00265, 0.00272, 0.00278, 0.00284, 0.0029, 0.00296, 0.00302, 0.00308, 0.00314, 0.00319, 0.00325, 0.00331, 0.00337, 0.00343, 0.00349\r\n2800, 0.00033, 0.00039, 0.00046, 0.00065, 0.00097, 0.00134, 0.00174, 0.00207, 0.00239, 0.00265, 0.0028, 0.00296, 0.00307, 0.00313, 0.0032, 0.00326, 0.00331, 0.00336, 0.00342, 0.00347, 0.00352, 0.00357, 0.00363, 0.00368, 0.00373, 0.00379\r\n3200, 0.00038, 0.00045, 0.00053, 0.00064, 0.00097, 0.00136, 0.00175, 0.00216, 0.00256, 0.00287, 0.0031, 0.00326, 0.00343, 0.00365, 0.00388, 0.0041, 0.00424, 0.00425, 0.00427, 0.00429, 0.0043, 0.00432, 0.00434, 0.00435, 0.00437, 0.00439\r\n3600, 0.00043, 0.00052, 0.00061, 0.0007, 0.00095, 0.00137, 0.00179, 0.00221, 0.00272, 0.00315, 0.00347, 0.00384, 0.00423, 0.00463, 0.00487, 0.00495, 0.00502, 0.00509, 0.00513, 0.00514, 0.00516, 0.00517, 0.00519, 0.0052, 0.00521, 0.00523\r\n4000, 0.00047, 0.00059, 0.00083, 0.00118, 0.00162, 0.0021, 0.00259, 0.00317, 0.00367, 0.00403, 0.00436, 0.00487, 0.00537, 0.00587, 0.00603, 0.00608, 0.00614, 0.0062, 0.00624, 0.00625, 0.00626, 0.00627, 0.00629, 0.0063, 0.00631, 0.00633\r\n4400, 0.00051, 0.00064, 0.00085, 0.00122, 0.00165, 0.00218, 0.0027, 0.00333, 0.00392, 0.00443, 0.00477, 0.00514, 0.00568, 0.00621, 0.00675, 0.00703, 0.00709, 0.00715, 0.00721, 0.00726, 0.00731, 0.00732, 0.00733, 0.00735, 0.00736, 0.00738\r\n4800, 0.00052, 0.00074, 0.00095, 0.00121, 0.00167, 0.00218, 0.00272, 0.00336, 0.00404, 0.00459, 0.00538, 0.0064, 0.00701, 0.00725, 0.0075, 0.00774, 0.00793, 0.00799, 0.00805, 0.00811, 0.00817, 0.00822, 0.00828, 0.00829, 0.0083, 0.00831\r\n5200, 0.00059, 0.00078, 0.00098, 0.00117, 0.00164, 0.00216, 0.00272, 0.0034, 0.0041, 0.00505, 0.00633, 0.0069, 0.00747, 0.00779, 0.00807, 0.00835, 0.00863, 0.0088, 0.00886, 0.00891, 0.00897, 0.00903, 0.00909, 0.00914, 0.0092, 0.00926\r\n5600, 0.00065, 0.00083, 0.001, 0.00119, 0.0016, 0.00212, 0.00273, 0.00356, 0.00462, 0.00551, 0.00638, 0.00704, 0.00762, 0.00803, 0.0083, 0.00857, 0.00885, 0.00912, 0.00925, 0.00931, 0.00937, 0.00943, 0.00949, 0.00955, 0.00961, 0.00967\r\n5800, 0.00076, 0.0009, 0.00103, 0.00119, 0.00162, 0.00211, 0.00271, 0.00357, 0.0046, 0.00548, 0.00642, 0.00712, 0.00772, 0.00816, 0.00841, 0.00867, 0.00892, 0.00918, 0.0093, 0.00935, 0.0094, 0.00945, 0.00951, 0.00956, 0.00961, 0.00966\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Fuel Consumption Rate; 150 kW Fuel Consumption\r\n#Library : Powertrain: Fuel Consumption Rate\r\n#DataSet : 150 kW Fuel Consumption\r\n#Category:\r\n#FileID  : FuelRate102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:52\r\n#VehCode Fuel rate\r\n\r\nEXIT_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par\r\n\r\n#BlueLink0 Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption` ` , Fuel rate\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 24.75, 76.11, 101.37, 103.43, 104.6, 105.18, 105.38, 105.43, 105.46, 105.43\r\n633, 29.7, 92.87, 139.66, 149.15, 150.67, 151.28, 151.5, 151.52, 151.52, 151.52\r\n750, 0, 87.39, 148.02, 161.35, 164.95, 166.25, 166.73, 166.77, 166.77, 166.75\r\n1107, -9.9, 70.62, 173.59, 198.66, 208.61, 212.02, 213.29, 213.4, 213.37, 213.29\r\n1463, -14.85, 47.12, 167.31, 207.9, 221.15, 227.15, 230.09, 230.77, 231.22, 235.62\r\n1820, -16.83, 25.74, 148.5, 211.6, 233.68, 242.29, 246.89, 248.14, 249.06, 255.42\r\n2177, -20.17, 9.9, 117.65, 203.67, 237.6, 257.4, 260.37, 263.34, 266.31, 272.88\r\n2533, -25.32, -6.41, 81.3, 182.08, 239.58, 267, 274.23, 279.24, 282.15, 287.1\r\n2890, -30.14, -15.16, 56.41, 153.5, 233.12, 269.9, 285.22, 289.08, 295.02, 299.97\r\n3247, -34.39, -22.06, 37.66, 122.49, 223.45, 267.3, 287.1, 295.02, 300.96, 306.9\r\n3603, -38.57, -28.1, 23.48, 96.53, 201.04, 259.38, 288.09, 297, 303.93, 309.87\r\n3960, -42.77, -33.71, 11.8, 76.42, 174.35, 248.62, 285.12, 296.01, 302.94, 306.9\r\n4317, -47.21, -39.38, 0.28, 57.45, 150.24, 237.3, 280.17, 290.07, 297, 302.88\r\n4673, -51.83, -45.01, -9.97, 41.19, 125.06, 220.31, 272.25, 282.15, 292.05, 297\r\n5030, -56.74, -50.57, -19.08, 26.99, 102.65, 198.96, 262.35, 272.25, 282.15, 287.1\r\n5387, -61.67, -56.24, -27.53, 14.45, 83.52, 176.58, 246.84, 256.41, 269.64, 272.49\r\n5743, -67.19, -62.17, -35.72, 2.82, 66.2, 153.28, 221.41, 236.52, 243.61, 246.41\r\n6100, -73.21, -68.41, -43.88, -8.16, 50.38, 130.66, 193.86, 207.92, 214.52, 217.05\r\n6500, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19\r\n6700, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 150 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 150 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine110.par\r\n\r\n#BlueLink0 Powertrain: Engine`150 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC103.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 150 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.00704273\r\n0.1, 0.00704273\r\n0.2, 0.00704273\r\n0.3, 0.00704269\r\n0.4, 0.00704199\r\n0.5, 0.00703585\r\n0.6, 0.00700014\r\n0.7, 0.00684379\r\n0.8, 0.00628652\r\n0.9, 0.00458708\r\n0.95, 0.00282599\r\n0.99, 0.000673411\r\n1.01, -0.000673411\r\n1.05, -0.00282599\r\n1.1, -0.00458708\r\n1.2, -0.00628652\r\n1.3, -0.00684379\r\n1.4, -0.00700014\r\n1.5, -0.00703585\r\n1.6, -0.00704199\r\n1.7, -0.00704269\r\n1.8, -0.00704273\r\n1.9, -0.00704273\r\n2, -0.00704273\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 150 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 150 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC103.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 150 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission`\r\n#RingCtrl0 6\r\nNGEARS 6\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.168\r\nR_GEAR_TR(1) 3.538\r\nR_GEAR_TR(2) 2.06\r\nR_GEAR_TR(3) 1.404\r\nR_GEAR_TR(4) 1.00\r\nR_GEAR_TR(5) 0.713\r\nR_GEAR_TR(6) 0.582\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nT_SHIFT 0.25\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift101.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 1-2 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 874\r\n0.2, 874\r\n0.8, 1653\r\n1, 1653\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 699\r\n0.4, 699\r\n0.8, 1240\r\n1, 1240\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 1-2 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift101.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`6-speed, 1-2 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift102.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 2-3 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1282\r\n0.2, 1282\r\n0.8, 2840\r\n1, 2840\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1026\r\n0.4, 1026\r\n0.8, 2130\r\n1, 2130\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 2-3 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift102.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`6-speed, 2-3 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift103.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 3-4 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 4167\r\n1, 4167\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 3125\r\n1, 3125\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 3-4 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift103.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`6-speed, 3-4 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift104.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 4-5 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2525\r\n0.2, 2525\r\n0.8, 5850\r\n1, 5850\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2020\r\n0.4, 2020\r\n0.8, 4388\r\n1, 4388\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 4-5 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift104.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`6-speed, 4-5 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift105.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 5-6 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 3093\r\n0.2, 3093\r\n0.8, 8205\r\n1, 8205\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2474\r\n0.4, 2474\r\n0.8, 6154\r\n1, 6154\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 5-6 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift105.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`6-speed, 5-6 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 6-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 6-Speed Transmission\r\n#Category:\r\n#FileID  : Trans101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans101.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Open - Gear Ratio 4.1`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_CONSTANT 0\r\nR_GEAR_FD 4.1\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 0.8\r\nLOCKED_FD_K 80\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Open - Gear Ratio 4.1` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Open - Gear Ratio 4.1`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_CONSTANT 0\r\nR_GEAR_RD 4.1\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff103.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Open - Gear Ratio 4.1` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 150 kW, 6-spd., 4.1 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 150 kW, 6-spd., 4.1 Ratio\r\n#Category:\r\n#FileID  : 4WD106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD106_note.txt\r\nGeneric 150 kW powertrain with an automatic transmission. The torque converter data has been tuned to work with the 150 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD106_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD106.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`150 kW, 6-spd., 4.1 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W113.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`D-Class, SUV w/o ABS`CS D-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`300 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 300\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 300\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 300 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 300 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq101.par\r\n\r\n#BlueLink0 Brakes: Torque`300 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 0\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`300 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nPBK_DL_TABLE LINEAR\r\n0, 0\r\n2, 2\r\n3, 2.3\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity until 2.0MPa then 30%\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity until 2.0MPa then 30%\r\n#Category:\r\n#FileID  : BrkProp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nENTRY_NOTEFILE Brakes\\Proportioning\\BrkProp104_note.txt\r\nBrake systems without ABS control typically have a propotioning valve that reduces pressure gains on the rear wheel when a moderate pressure is reached, to avoid locking the rear wheels with high braking and associated load transfer.\r\n\r\nThey are also used on some trucks with large ranges in load.\r\nEXIT_NOTEFILE Brakes\\Proportioning\\BrkProp104_note.txt\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp104.par\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 0\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS D-Class } D-Class, SUV w/o ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : D-Class, SUV w/o ABS\r\n#Category: CS D-Class\r\n#FileID  : Brk4W113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W113.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`D-Class, SUV w/o ABS` CS D-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2111.par`08-02-2011`16:42:43\r\n#FullDataName Steering`D-Class, SUV: Power, Recirc. Ball`CS D-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.00015\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 77.0\r\n*L2_LKPO 0\r\n*R1_LKPO 77.0\r\n*R2_LKPO 0\r\n*L1_AKPI 12.5\r\n*L2_AKPI 0\r\n*R1_AKPI 12.5\r\n*R2_AKPI 0\r\n*L1_ACAST 9.5\r\n*L2_ACAST 0\r\n*R1_ACAST 9.5\r\n*R2_ACAST 0\r\n*L1_XKPO 5.0\r\n*L2_XKPO 0\r\n*R1_XKPO 5.0\r\n*R2_XKPO 0\r\n*RSW_F 20\r\n*D_GR_F 4\r\n*D_RACK_F 30\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 2\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.00015\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niside 2\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 0\r\nGEAR_ROT_COEFFICIENT 0.02\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 0\r\nGEAR_ROT_COEFFICIENT 1/20\r\nD_GEAR 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\Kinematics2\\StrKinAx102.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Recirc. Ball)`D-Class, SUV Recirc. Ball Kinematics`D-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nSTEER_KIN_TABLE SPLINE\r\n-30.6, -35.73321668\r\n-30.294, -35.33074603\r\n-29.988, -34.92888705\r\n-29.682, -34.52765493\r\n-29.376, -34.12706463\r\n-29.07, -33.72713088\r\n-28.764, -33.32786819\r\n-28.458, -32.92929081\r\n-28.152, -32.5314128\r\n-27.846, -32.13424794\r\n-27.54, -31.73780979\r\n-27.234, -31.34211166\r\n-26.928, -30.9471666\r\n-26.622, -30.55298743\r\n-26.316, -30.1595867\r\n-26.01, -29.76697671\r\n-25.704, -29.37516952\r\n-25.398, -28.98417692\r\n-25.092, -28.59401042\r\n-24.786, -28.2046813\r\n-24.48, -27.81620057\r\n-24.174, -27.42857896\r\n-23.868, -27.04182696\r\n-23.562, -26.65595478\r\n-23.256, -26.27097236\r\n-22.95, -25.88688939\r\n-22.644, -25.50371529\r\n-22.338, -25.1214592\r\n-22.032, -24.74013\r\n-21.726, -24.35973631\r\n-21.42, -23.98028649\r\n-21.114, -23.60178863\r\n-20.808, -23.22425053\r\n-20.502, -22.84767977\r\n-20.196, -22.47208363\r\n-19.89, -22.09746916\r\n-19.584, -21.72384311\r\n-19.278, -21.35121202\r\n-18.972, -20.97958212\r\n-18.666, -20.60895943\r\n-18.36, -20.23934968\r\n-18.054, -19.87075836\r\n-17.748, -19.50319072\r\n-17.442, -19.13665174\r\n-17.136, -18.77114616\r\n-16.83, -18.40667849\r\n-16.524, -18.04325296\r\n-16.218, -17.6808736\r\n-15.912, -17.31954418\r\n-15.606, -16.95926823\r\n-15.3, -16.60004905\r\n-14.994, -16.24188972\r\n-14.688, -15.88479308\r\n-14.382, -15.52876174\r\n-14.076, -15.17379809\r\n-13.77, -14.81990432\r\n-13.464, -14.46708236\r\n-13.158, -14.11533397\r\n-12.852, -13.76466066\r\n-12.546, -13.41506376\r\n-12.24, -13.06654437\r\n-11.934, -12.7191034\r\n-11.628, -12.37274156\r\n-11.322, -12.02745937\r\n-11.016, -11.68325713\r\n-10.71, -11.34013497\r\n-10.404, -10.99809284\r\n-10.098, -10.65713047\r\n-9.792, -10.31724746\r\n-9.486, -9.97844318\r\n-9.18, -9.640716858\r\n-8.874, -9.304067538\r\n-8.568, -8.968494097\r\n-8.262, -8.633995246\r\n-7.956, -8.300569533\r\n-7.65, -7.968215349\r\n-7.344, -7.636930926\r\n-7.038, -7.306714344\r\n-6.732, -6.977563533\r\n-6.426, -6.649476276\r\n-6.12, -6.322450212\r\n-5.814, -5.996482841\r\n-5.508, -5.671571523\r\n-5.202, -5.347713486\r\n-4.896, -5.024905823\r\n-4.59, -4.703145503\r\n-4.284, -4.382429366\r\n-3.978, -4.062754131\r\n-3.672, -3.744116397\r\n-3.366, -3.426512647\r\n-3.06, -3.109939249\r\n-2.754, -2.794392461\r\n-2.448, -2.479868432\r\n-2.142, -2.166363208\r\n-1.836, -1.853872728\r\n-1.53, -1.542392837\r\n-1.224, -1.231919277\r\n-0.918, -0.9224477\r\n-0.612, -0.613973663\r\n-0.306, -0.306492635\r\n2.20934e-14, 0\r\n0.306, 0.305508946\r\n0.612, 0.610038985\r\n0.918, 0.913594981\r\n1.224, 1.216181874\r\n1.53, 1.517804678\r\n1.836, 1.818468479\r\n2.142, 2.118178435\r\n2.448, 2.416939769\r\n2.754, 2.714757771\r\n3.06, 3.011637794\r\n3.366, 3.307585251\r\n3.672, 3.602605617\r\n3.978, 3.89670442\r\n4.284, 4.189887245\r\n4.59, 4.482159732\r\n4.896, 4.773527567\r\n5.202, 5.06399649\r\n5.508, 5.353572286\r\n5.814, 5.642260785\r\n6.12, 5.930067861\r\n6.426, 6.216999431\r\n6.732, 6.503061451\r\n7.038, 6.788259915\r\n7.344, 7.072600856\r\n7.65, 7.356090338\r\n7.956, 7.638734464\r\n8.262, 7.920539366\r\n8.568, 8.201511205\r\n8.874, 8.481656175\r\n9.18, 8.760980495\r\n9.486, 9.039490412\r\n9.792, 9.317192196\r\n10.098, 9.594092142\r\n10.404, 9.870196567\r\n10.71, 10.14551181\r\n11.016, 10.42004423\r\n11.322, 10.69380019\r\n11.628, 10.96678611\r\n11.934, 11.23900837\r\n12.24, 11.51047342\r\n12.546, 11.78118769\r\n12.852, 12.05115763\r\n13.158, 12.32038971\r\n13.464, 12.5888904\r\n13.77, 12.8566662\r\n14.076, 13.12372358\r\n14.382, 13.39006906\r\n14.688, 13.65570916\r\n14.994, 13.92065038\r\n15.3, 14.18489925\r\n15.606, 14.44846229\r\n15.912, 14.71134605\r\n16.218, 14.97355705\r\n16.524, 15.23510184\r\n16.83, 15.49598695\r\n17.136, 15.75621894\r\n17.442, 16.01580433\r\n17.748, 16.27474968\r\n18.054, 16.53306152\r\n18.36, 16.7907464\r\n18.666, 17.04781086\r\n18.972, 17.30426143\r\n19.278, 17.56010466\r\n19.584, 17.81534707\r\n19.89, 18.06999519\r\n20.196, 18.32405554\r\n20.502, 18.57753465\r\n20.808, 18.83043902\r\n21.114, 19.08277518\r\n21.42, 19.33454961\r\n21.726, 19.58576883\r\n22.032, 19.83643931\r\n22.338, 20.08656755\r\n22.644, 20.33616003\r\n22.95, 20.5852232\r\n23.256, 20.83376354\r\n23.562, 21.08178749\r\n23.868, 21.32930151\r\n24.174, 21.57631204\r\n24.48, 21.82282549\r\n24.786, 22.06884829\r\n25.092, 22.31438686\r\n25.398, 22.55944759\r\n25.704, 22.80403687\r\n26.01, 23.0481611\r\n26.316, 23.29182664\r\n26.622, 23.53503986\r\n26.928, 23.7778071\r\n27.234, 24.02013472\r\n27.54, 24.26202905\r\n27.846, 24.50349641\r\n28.152, 24.74454311\r\n28.458, 24.98517546\r\n28.764, 25.22539975\r\n29.07, 25.46522226\r\n29.376, 25.70464927\r\n29.682, 25.94368703\r\n29.988, 26.18234179\r\n30.294, 26.4206198\r\n30.6, 26.65852728\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nSTEER_KIN_TABLE SPLINE\r\n-30.6, -26.65852728\r\n-30.294, -26.4206198\r\n-29.988, -26.18234179\r\n-29.682, -25.94368703\r\n-29.376, -25.70464927\r\n-29.07, -25.46522226\r\n-28.764, -25.22539975\r\n-28.458, -24.98517546\r\n-28.152, -24.74454311\r\n-27.846, -24.50349641\r\n-27.54, -24.26202905\r\n-27.234, -24.02013472\r\n-26.928, -23.7778071\r\n-26.622, -23.53503986\r\n-26.316, -23.29182664\r\n-26.01, -23.0481611\r\n-25.704, -22.80403687\r\n-25.398, -22.55944759\r\n-25.092, -22.31438686\r\n-24.786, -22.06884829\r\n-24.48, -21.82282549\r\n-24.174, -21.57631204\r\n-23.868, -21.32930151\r\n-23.562, -21.08178749\r\n-23.256, -20.83376354\r\n-22.95, -20.5852232\r\n-22.644, -20.33616003\r\n-22.338, -20.08656755\r\n-22.032, -19.83643931\r\n-21.726, -19.58576883\r\n-21.42, -19.33454961\r\n-21.114, -19.08277518\r\n-20.808, -18.83043902\r\n-20.502, -18.57753465\r\n-20.196, -18.32405554\r\n-19.89, -18.06999519\r\n-19.584, -17.81534707\r\n-19.278, -17.56010466\r\n-18.972, -17.30426143\r\n-18.666, -17.04781086\r\n-18.36, -16.7907464\r\n-18.054, -16.53306152\r\n-17.748, -16.27474968\r\n-17.442, -16.01580433\r\n-17.136, -15.75621894\r\n-16.83, -15.49598695\r\n-16.524, -15.23510184\r\n-16.218, -14.97355705\r\n-15.912, -14.71134605\r\n-15.606, -14.44846229\r\n-15.3, -14.18489925\r\n-14.994, -13.92065038\r\n-14.688, -13.65570916\r\n-14.382, -13.39006906\r\n-14.076, -13.12372358\r\n-13.77, -12.8566662\r\n-13.464, -12.5888904\r\n-13.158, -12.32038971\r\n-12.852, -12.05115763\r\n-12.546, -11.78118769\r\n-12.24, -11.51047342\r\n-11.934, -11.23900837\r\n-11.628, -10.96678611\r\n-11.322, -10.69380019\r\n-11.016, -10.42004423\r\n-10.71, -10.14551181\r\n-10.404, -9.870196567\r\n-10.098, -9.594092142\r\n-9.792, -9.317192196\r\n-9.486, -9.039490412\r\n-9.18, -8.760980495\r\n-8.874, -8.481656175\r\n-8.568, -8.201511205\r\n-8.262, -7.920539366\r\n-7.956, -7.638734464\r\n-7.65, -7.356090338\r\n-7.344, -7.072600856\r\n-7.038, -6.788259915\r\n-6.732, -6.503061451\r\n-6.426, -6.216999431\r\n-6.12, -5.930067861\r\n-5.814, -5.642260785\r\n-5.508, -5.353572286\r\n-5.202, -5.06399649\r\n-4.896, -4.773527567\r\n-4.59, -4.482159732\r\n-4.284, -4.189887245\r\n-3.978, -3.89670442\r\n-3.672, -3.602605617\r\n-3.366, -3.307585251\r\n-3.06, -3.011637794\r\n-2.754, -2.714757771\r\n-2.448, -2.416939769\r\n-2.142, -2.118178435\r\n-1.836, -1.818468479\r\n-1.53, -1.517804678\r\n-1.224, -1.216181874\r\n-0.918, -0.913594981\r\n-0.612, -0.610038985\r\n-0.306, -0.305508946\r\n2.20934e-14, 0\r\n0.306, 0.306492635\r\n0.612, 0.613973663\r\n0.918, 0.9224477\r\n1.224, 1.231919277\r\n1.53, 1.542392837\r\n1.836, 1.853872728\r\n2.142, 2.166363208\r\n2.448, 2.479868432\r\n2.754, 2.794392461\r\n3.06, 3.109939249\r\n3.366, 3.426512647\r\n3.672, 3.744116397\r\n3.978, 4.062754131\r\n4.284, 4.382429366\r\n4.59, 4.703145503\r\n4.896, 5.024905823\r\n5.202, 5.347713486\r\n5.508, 5.671571523\r\n5.814, 5.996482841\r\n6.12, 6.322450212\r\n6.426, 6.649476276\r\n6.732, 6.977563533\r\n7.038, 7.306714344\r\n7.344, 7.636930926\r\n7.65, 7.968215349\r\n7.956, 8.300569533\r\n8.262, 8.633995246\r\n8.568, 8.968494097\r\n8.874, 9.304067538\r\n9.18, 9.640716858\r\n9.486, 9.97844318\r\n9.792, 10.31724746\r\n10.098, 10.65713047\r\n10.404, 10.99809284\r\n10.71, 11.34013497\r\n11.016, 11.68325713\r\n11.322, 12.02745937\r\n11.628, 12.37274156\r\n11.934, 12.7191034\r\n12.24, 13.06654437\r\n12.546, 13.41506376\r\n12.852, 13.76466066\r\n13.158, 14.11533397\r\n13.464, 14.46708236\r\n13.77, 14.81990432\r\n14.076, 15.17379809\r\n14.382, 15.52876174\r\n14.688, 15.88479308\r\n14.994, 16.24188972\r\n15.3, 16.60004905\r\n15.606, 16.95926823\r\n15.912, 17.31954418\r\n16.218, 17.6808736\r\n16.524, 18.04325296\r\n16.83, 18.40667849\r\n17.136, 18.77114616\r\n17.442, 19.13665174\r\n17.748, 19.50319072\r\n18.054, 19.87075836\r\n18.36, 20.23934968\r\n18.666, 20.60895943\r\n18.972, 20.97958212\r\n19.278, 21.35121202\r\n19.584, 21.72384311\r\n19.89, 22.09746916\r\n20.196, 22.47208363\r\n20.502, 22.84767977\r\n20.808, 23.22425053\r\n21.114, 23.60178863\r\n21.42, 23.98028649\r\n21.726, 24.35973631\r\n22.032, 24.74013\r\n22.338, 25.1214592\r\n22.644, 25.50371529\r\n22.95, 25.88688939\r\n23.256, 26.27097236\r\n23.562, 26.65595478\r\n23.868, 27.04182696\r\n24.174, 27.42857896\r\n24.48, 27.81620057\r\n24.786, 28.2046813\r\n25.092, 28.59401042\r\n25.398, 28.98417692\r\n25.704, 29.37516952\r\n26.01, 29.76697671\r\n26.316, 30.1595867\r\n26.622, 30.55298743\r\n26.928, 30.9471666\r\n27.234, 31.34211166\r\n27.54, 31.73780979\r\n27.846, 32.13424794\r\n28.152, 32.5314128\r\n28.458, 32.92929081\r\n28.764, 33.32786819\r\n29.07, 33.72713088\r\n29.376, 34.12706463\r\n29.682, 34.52765493\r\n29.988, 34.92888705\r\n30.294, 35.33074603\r\n30.6, 35.73321668\r\nENDTABLE\r\n#RadioCtrl0 1\r\n#RadioCtrl1 1\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Recirc. Ball); { D-Class } D-Class, SUV Recirc. Ball Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Recirc. Ball)\r\n#DataSet : D-Class, SUV Recirc. Ball Kinematics\r\n#Category: D-Class\r\n#FileID  : StrKinAx102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steer kinematics\r\n\r\nENTRY_NOTEFILE Steering\\Kinematics2\\StrKinAx102_note.txt\r\nD-Class SUV Recirculating Ball Kinematics data screen with 11 rows per wheel and Function Type: Spline interpolation and extrapolation.\r\nEXIT_NOTEFILE Steering\\Kinematics2\\StrKinAx102_note.txt\r\n\r\nEXIT_PARSFILE Steering\\Kinematics2\\StrKinAx102.par\r\n\r\n#BlueLink8 Steering System: Kinematics for 2 Wheels (Recirc. Ball)`D-Class, SUV Recirc. Ball Kinematics` D-Class` , Pitman arm to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_TqBoost\\TqBoost101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Torque`200 N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\nTC_BOOST 2\r\n*SCALAR 200\r\n\r\nM_BOOST_G_COEFFICIENT 200\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Torque; 200 N-m\r\n#Library : Steering: Power Assist Torque\r\n#DataSet : 200 N-m\r\n#Category:\r\n#FileID  : TqBoost101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist torque\r\n\r\nEXIT_PARSFILE Steering\\Str_TqBoost\\TqBoost101.par\r\n\r\n#BlueLink17 Steering: Power Assist Torque`200 N-m` ` , Front boost torque\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp105.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`0.002 deg/N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.002\r\n\r\nSTEER_COMP_COEFFICIENT 0.002\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; 0.002 deg/N-m\r\n#Library : Steering System: Compliance\r\n#DataSet : 0.002 deg/N-m\r\n#Category:\r\n#FileID  : StrCmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp105.par\r\n\r\n#BlueLink13 Steering System: Compliance`0.002 deg/N-m` ` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS D-Class } D-Class, SUV: Power, Recirc. Ball\r\n#Library : Steering\r\n#DataSet : D-Class, SUV: Power, Recirc. Ball\r\n#Category: CS D-Class\r\n#FileID  : StrSys2111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2111_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 2600 mm\r\nFront Track =  1565 mm\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2111_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2111.par\r\n\r\n#BlueLink7 Steering`D-Class, SUV: Power, Recirc. Ball` CS D-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS D-Class } D-Class, SUV LEO-defined\r\n#Library : Vehicle: Assembly\r\n#DataSet : D-Class, SUV LEO-defined\r\n#Category: CS D-Class\r\n#FileID  : Vehicle165\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 18:41:30\r\n#VehCode Ind_SA\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle165.par\r\n\r\n#BlueLink2 Vehicle: Assembly`D-Class, SUV LEO-defined` CS D-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc175.par`09-03-2019`18:53:00\r\n#FullDataName Procedures`chapt4_MPC_EM_PathTracking`BOOK_MPC_Procedures\r\n#CheckBox0 1\r\nOPT_INIT_CONFIG 1\r\n#CheckBox1 1\r\nOPT_INIT_ROAD 1\r\n#CheckBox2 1\r\nOPT_INIT_SPEED 1\r\n#CheckBox3 1\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 65\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 3\r\nSPEED_STATION_CONSTANT 65\r\nENTER_PARSFILE Control\\Driver\\Driver122.par`09-03-2019`18:42:06\r\n#FullDataName Control: Steering by the Closed-loop Driver Model`2 m Right, 1.5 sec. Preview`Constant Position\r\n#RingCtrl0 0\r\n#RingCtrl1 CONSTANT\r\nLTARG_CONSTANT -2.0\r\n#RadioCtrl0 0\r\n\r\nAV_SW_MAX_DM 1200\r\nTLAG_DM 0\r\nA_SW_MAX_DM 720\r\n*TPREV 1.5\r\n*SCALAR -2.0\r\nVLOW_DRIVER 20\r\n\r\n#CheckBox0 0\r\nOPT_DRIVER_MODEL 1\r\n#CheckBox1 0\r\nCREATE_PATH_OBJ off\r\n\r\nTPREV_CONSTANT 1.5\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering by the Closed-loop Driver Model; { Constant Position } 2 m Right, 1.5 sec. Preview\r\n#Library : Control: Steering by the Closed-loop Driver Model\r\n#DataSet : 2 m Right, 1.5 sec. Preview\r\n#Category: Constant Position\r\n#FileID  : Driver122\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-03-2019 18:42:06\r\n#VehCode Driver path follower\r\n\r\nEXIT_PARSFILE Control\\Driver\\Driver122.par\r\n\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`2 m Right, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road135.par`09-03-2019`18:38:03\r\n#FullDataName Road: 3D Surface (All Properties)`Alt 3 from FHWA -LEO Flat`Scenic Roads\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.05\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY103.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Alt 3 Road from FHWA`FHWA\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n4.352, -2.462, 5.00013479818\r\n8.704, -4.924, 10.0002695964\r\n13.055, -7.386, 14.9995340423\r\n17.407, -9.848, 19.9996688404\r\n21.759, -12.311, 25.0002961011\r\n26.111, -14.773, 30.0004308993\r\n30.462, -17.235, 34.9996953452\r\n34.814, -19.697, 39.9998301434\r\n39.166, -22.159, 44.9999649415\r\n43.518, -24.621, 50.0000997397\r\n47.87, -27.083, 55.0002345379\r\n52.221, -29.545, 59.9994989838\r\n56.573, -32.008, 65.0001262445\r\n60.925, -34.47, 70.0002610426\r\n65.277, -36.932, 75.0003958408\r\n69.628, -39.394, 79.9996602867\r\n73.98, -41.856, 84.9997950849\r\n78.332, -44.318, 89.9999298831\r\n82.684, -46.78, 95.0000646813\r\n87.036, -49.242, 100.000199479\r\n91.387, -51.704, 104.999463925\r\n95.739, -54.167, 110.000091186\r\n100.091, -56.629, 115.000225984\r\n104.443, -59.091, 120.000360782\r\n108.794, -61.553, 124.999625228\r\n113.146, -64.015, 129.999760026\r\n117.498, -66.477, 134.999894825\r\n121.85, -68.939, 140.000029623\r\n126.202, -71.401, 145.000164421\r\n130.553, -73.864, 149.999921415\r\n134.905, -76.326, 155.000056213\r\n139.257, -78.788, 160.000191011\r\n143.609, -81.25, 165.00032581\r\n147.96, -83.712, 169.999590256\r\n152.312, -86.174, 174.999725054\r\n156.664, -88.636, 179.999859852\r\n161.016, -91.098, 184.99999465\r\n165.368, -93.561, 190.000621911\r\n169.719, -96.023, 194.999886357\r\n174.071, -98.485, 200.000021155\r\n178.423, -100.947, 205.000155953\r\n182.775, -103.409, 210.000290751\r\n187.126, -105.871, 214.999555197\r\n191.478, -108.333, 219.999689995\r\n195.83, -110.795, 224.999824793\r\n200.182, -113.257, 229.999959592\r\n204.534, -115.72, 235.000586852\r\n208.885, -118.182, 239.999851298\r\n213.237, -120.644, 244.999986096\r\n217.589, -123.106, 250.000120895\r\n221.941, -125.568, 255.000255693\r\n226.292, -128.03, 259.999520139\r\n230.644, -130.492, 264.999654937\r\n234.996, -132.954, 269.999789735\r\n239.348, -135.417, 275.000416996\r\n243.7, -137.879, 280.000551794\r\n248.057, -140.33, 284.99963671\r\n252.478, -142.667, 290.000317664\r\n256.971, -144.859, 294.999508898\r\n261.533, -146.906, 299.999714194\r\n266.158, -148.804, 304.999017045\r\n270.842, -150.552, 309.998553024\r\n275.581, -152.148, 314.999086695\r\n280.368, -153.591, 319.99884849\r\n285.199, -154.878, 324.998341464\r\n290.069, -156.009, 329.997947549\r\n294.973, -156.982, 334.997542032\r\n299.906, -157.797, 339.99741343\r\n304.863, -158.452, 344.99750083\r\n309.838, -158.946, 349.996966901\r\n314.827, -159.28, 354.997134598\r\n319.824, -159.453, 359.997128398\r\n324.823, -159.465, 364.996142801\r\n329.821, -159.316, 369.996363296\r\n334.811, -159.005, 374.996045386\r\n339.789, -158.534, 379.996277881\r\n344.748, -157.902, 384.995388302\r\n349.685, -157.111, 389.995353302\r\n354.594, -156.16, 394.995621494\r\n359.469, -155.053, 399.994728815\r\n364.309, -153.795, 404.995545148\r\n369.139, -152.501, 409.995878737\r\n373.968, -151.207, 414.995246397\r\n378.798, -149.913, 419.995579986\r\n383.627, -148.619, 424.994947646\r\n388.457, -147.324, 429.995540111\r\n393.287, -146.03, 434.9958737\r\n398.116, -144.736, 439.99524136\r\n402.946, -143.442, 444.995574949\r\n407.776, -142.148, 449.995908537\r\n412.605, -140.854, 454.995276197\r\n417.435, -139.56, 459.995609786\r\n422.264, -138.266, 464.994977446\r\n427.094, -136.971, 469.995569911\r\n431.924, -135.677, 474.9959035\r\n436.753, -134.383, 479.99527116\r\n441.583, -133.089, 484.995604749\r\n446.413, -131.795, 489.995938338\r\n451.242, -130.501, 494.995305998\r\n456.072, -129.207, 499.995639587\r\n460.901, -127.913, 504.995007247\r\n465.731, -126.618, 509.995599712\r\n470.561, -125.324, 514.995933301\r\n475.39, -124.03, 519.995300961\r\n480.22, -122.736, 524.995634549\r\n485.049, -121.442, 529.995002209\r\n489.879, -120.148, 534.995335798\r\n494.709, -118.854, 539.995669387\r\n499.538, -117.56, 544.995037047\r\n504.386, -116.333, 549.995900273\r\n509.271, -115.268, 554.995645266\r\n514.188, -114.366, 559.994694476\r\n519.133, -113.629, 564.994313861\r\n524.1, -113.057, 569.994141158\r\n529.084, -112.651, 574.994650332\r\n534.078, -112.411, 579.994413927\r\n539.077, -112.338, 584.993946905\r\n544.076, -112.431, 589.993811903\r\n549.069, -112.691, 594.993576798\r\n554.05, -113.118, 599.992845744\r\n559.015, -113.709, 604.992896344\r\n563.957, -114.467, 609.99268914\r\n568.871, -115.388, 614.992252821\r\n573.752, -116.473, 619.992391419\r\n578.594, -117.719, 624.992139412\r\n583.391, -119.127, 629.991506672\r\n588.139, -120.693, 634.991092655\r\n592.833, -122.417, 639.991673821\r\n597.466, -124.296, 644.9912068\r\n602.034, -126.329, 649.991178099\r\n606.531, -128.513, 654.990464549\r\n610.954, -130.845, 659.990579847\r\n615.296, -133.324, 664.990420345\r\n619.553, -135.946, 669.990113635\r\n623.72, -138.708, 674.989366879\r\n627.793, -141.608, 679.989299779\r\n631.767, -144.642, 684.989082974\r\n635.638, -147.806, 689.988636654\r\n639.402, -151.098, 694.98913263\r\n643.053, -154.513, 699.988335166\r\n646.588, -158.049, 704.988287266\r\n650.004, -161.7, 709.988172965\r\n653.296, -165.463, 714.987916258\r\n656.461, -169.333, 719.987328724\r\n659.496, -173.307, 724.987718808\r\n662.396, -177.379, 729.986837131\r\n665.24, -181.491, 734.986525121\r\n668.084, -185.604, 739.987035595\r\n670.928, -189.716, 744.986723585\r\n673.772, -193.829, 749.987234059\r\n676.616, -197.941, 754.986922049\r\n679.459, -202.053, 759.986041272\r\n682.303, -206.166, 764.986551746\r\n685.147, -210.278, 769.986239736\r\n687.991, -214.391, 774.98675021\r\n690.835, -218.503, 779.9864382\r\n693.679, -222.616, 784.986948674\r\n696.523, -226.728, 789.986636664\r\n699.367, -230.84, 794.986324655\r\n702.211, -234.953, 799.986835129\r\n705.055, -239.065, 804.986523119\r\n707.899, -243.178, 809.987033593\r\n710.743, -247.29, 814.986721583\r\n713.647, -251.36, 819.986533179\r\n716.71, -255.312, 824.986560479\r\n719.928, -259.138, 829.985940441\r\n723.297, -262.832, 834.985520123\r\n726.811, -266.388, 839.984853279\r\n730.464, -269.802, 844.984833779\r\n734.251, -273.066, 849.984340254\r\n738.166, -276.176, 854.984272754\r\n742.201, -279.128, 859.983825634\r\n746.352, -281.915, 864.983642631\r\n750.61, -284.535, 869.983139005\r\n754.97, -286.982, 874.982879899\r\n759.425, -289.252, 879.982872399\r\n763.966, -291.343, 884.982168549\r\n768.588, -293.251, 889.982503338\r\n773.282, -294.972, 894.982051017\r\n778.041, -296.504, 899.981561493\r\n782.857, -297.844, 904.980506982\r\n787.724, -298.991, 909.980836771\r\n792.632, -299.942, 914.98012322\r\n797.575, -300.697, 919.98045061\r\n802.543, -301.253, 924.979466513\r\n807.53, -301.61, 929.979228307\r\n812.527, -301.767, 934.978694079\r\n817.527, -301.724, 939.978878975\r\n822.521, -301.481, 944.978787474\r\n827.501, -301.039, 949.978363856\r\n832.459, -300.398, 954.977628302\r\n837.388, -299.559, 959.977524501\r\n842.279, -298.524, 964.976835054\r\n847.125, -297.294, 969.976496642\r\n851.918, -295.871, 974.976274437\r\n856.65, -294.258, 979.975633696\r\n861.314, -292.457, 984.975283384\r\n865.905, -290.475, 989.975843853\r\n870.473, -288.442, 994.975815152\r\n875.041, -286.408, 999.976193138\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; { FHWA } Alt 3 Road from FHWA\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Alt 3 Road from FHWA\r\n#Category: FHWA\r\n#FileID  : RoadXY103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY103.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Alt 3 Road from FHWA` FHWA` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp116.par`08-02-2011`16:43:14\r\n#FullDataName Road: Animator Surface Shapes`Alt 3 FHWA Road`Scenic Road Shapes\r\nNLANES 5\r\nOPTTHRESHOLD 1\r\n#MiscYellow0\r\n# 0.878 0.878 0.878, Road (Medium), 0.2, 50, 1, -5, m, 5, m, 5, , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 50, 1, 5, m, 7.1, m, 1, , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 50, 3.1, -7.1, m, -100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 50, 3.1, 7.1, m, 100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 50, -1, -5, m, -7.1, m, 1, , -100, 1200, 5, , ,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.878 0.878 0.878\r\nMATERIAL(1) Road (Medium)\r\nSPECULAR(1) 0.2\r\nSCALE(1) 50\r\nLTILES(1) 1\r\nLIN(1) -5\r\nLINUNITS(1) m\r\nLOUT(1) 5\r\nLOUTUNITS(1) m\r\nLDIV(1) 5\r\nSSTART(1) -100\r\nSSTOP(1) 1200\r\nSINT(1) 5\r\nCOLOR(2) 0.878 0.878 0.878\r\nMATERIAL(2) Road Transition (Light)\r\nSPECULAR(2) 0.1\r\nSCALE(2) 50\r\nLTILES(2) 1\r\nLIN(2) 5\r\nLINUNITS(2) m\r\nLOUT(2) 7.1\r\nLOUTUNITS(2) m\r\nLDIV(2) 1\r\nSSTART(2) -100\r\nSSTOP(2) 1200\r\nSINT(2) 5\r\nCOLOR(3) 0.878 0.878 0.878\r\nMATERIAL(3) Grass (Light)\r\nSPECULAR(3) 0.1\r\nSCALE(3) 50\r\nLTILES(3) 3.1\r\nLIN(3) -7.1\r\nLINUNITS(3) m\r\nLOUT(3) -100\r\nLOUTUNITS(3) m\r\nSSTART(3) -100\r\nSSTOP(3) 1200\r\nSINT(3) 5\r\nCOLOR(4) 0.878 0.878 0.878\r\nMATERIAL(4) Grass (Light)\r\nSPECULAR(4) 0.1\r\nSCALE(4) 50\r\nLTILES(4) 3.1\r\nLIN(4) 7.1\r\nLINUNITS(4) m\r\nLOUT(4) 100\r\nLOUTUNITS(4) m\r\nSSTART(4) -100\r\nSSTOP(4) 1200\r\nSINT(4) 5\r\nCOLOR(5) 0.878 0.878 0.878\r\nMATERIAL(5) Road Transition (Light)\r\nSPECULAR(5) 0.1\r\nSCALE(5) 50\r\nLTILES(5) -1\r\nLIN(5) -5\r\nLINUNITS(5) m\r\nLOUT(5) -7.1\r\nLOUTUNITS(5) m\r\nLDIV(5) 1\r\nSSTART(5) -100\r\nSSTOP(5) 1200\r\nSINT(5) 5\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { Scenic Road Shapes } Alt 3 FHWA Road\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : Alt 3 FHWA Road\r\n#Category: Scenic Road Shapes\r\n#FileID  : RdShp116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:14\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp116.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`Alt 3 FHWA Road` Scenic Road Shapes` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Roads\\AniGroup\\RdAniGrp109.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Repeated Object`Trees 2`Trees\r\n#RingCtrl0 2\r\n#RingCtrl1 0\r\n#DiagramOne0\r\n*POINTS_table\r\n0, -10\r\n30, 10\r\n90, -10\r\n120, 10\r\n150, -10\r\n180, 10\r\n210, -10\r\n240, 10\r\n270, -10\r\n300, 10\r\n330, -10\r\n360, 10\r\n390, -10\r\n420, 10\r\n450, -10\r\n480, 10\r\n510, -10\r\n540, 10\r\n570, -10\r\n600, 10\r\n630, -10\r\n660, 10\r\n690, -10\r\n720, 10\r\n750, -10\r\n780, 10\r\n810, -10\r\n840, 10\r\n870, -10\r\n900, 10\r\n930, -10\r\n960, 10\r\n990, -10\r\n1020, 10\r\n1050, -10\r\n1080, 10\r\n1100, -10\r\n1130, 10\r\n1160, -10\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n#BlueLink0 Animator: Shape Assembly`Tree` Scenery` , Animator group\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Repeated Object; { Trees } Trees 2\r\n#Library : Road: Animator Repeated Object\r\n#DataSet : Trees 2\r\n#Category: Trees\r\n#FileID  : RdAniGrp109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road Animator Group\r\n\r\nEXIT_PARSFILE Roads\\AniGroup\\RdAniGrp109.par\r\n\r\n#BlueLink6 Road: Animator Repeated Object`Trees 2` Trees` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink7 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Roads\\AniGroup\\RdAniGrp110.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Repeated Object`S-curve (5.5 m)`\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n#DiagramOne0\r\n*POINTS_table\r\n200, -5.5\r\n800, -5.5\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n#BlueLink0 Animator: Shape File Link`S-Curve` Signs` , Animator group\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Repeated Object; S-curve (5.5 m)\r\n#Library : Road: Animator Repeated Object\r\n#DataSet : S-curve (5.5 m)\r\n#Category:\r\n#FileID  : RdAniGrp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road Animator Group\r\n\r\nEXIT_PARSFILE Roads\\AniGroup\\RdAniGrp110.par\r\n\r\n#BlueLink8 Road: Animator Repeated Object`S-curve (5.5 m)` ` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Roads\\AniGroup\\RdAniGrp111.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Repeated Object`Speed Limit 70 (5.5 m)`\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n#DiagramOne0\r\n*POINTS_table\r\n400, -5.5\r\n1000, -5.5\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n#BlueLink0 Animator: Shape File Link`Speed Limit 70` Signs` , Animator group\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Repeated Object; Speed Limit 70 (5.5 m)\r\n#Library : Road: Animator Repeated Object\r\n#DataSet : Speed Limit 70 (5.5 m)\r\n#Category:\r\n#FileID  : RdAniGrp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road Animator Group\r\n\r\nEXIT_PARSFILE Roads\\AniGroup\\RdAniGrp111.par\r\n\r\n#BlueLink9 Road: Animator Repeated Object`Speed Limit 70 (5.5 m)` ` , Misc. animator set\r\n\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road135.ani`09-03-2019`18:38:03\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road135_1.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.2 0.2 0.2\r\n\r\nadd_obj Roads\\3D_Road\\Road135_2.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road135_3.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road135_4.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road135_5.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road135.ani\r\n\r\n\r\nadd_reference_frame road_stuff_1_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.4975751915\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x -4.92386725433\r\nset_offset_var_y -8.70376534965\r\nset_offset_var_z 0\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup103.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Tree`Scenery\r\n*ANGLE_Z 180\r\n*ANGLE_Y 0\r\n*ANGLE_X 0\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 0\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 1\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL118.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Tree`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\tree1.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 0.3\r\nSET_SCALE_Y 0.3\r\nSET_SCALE_Z 0.5\r\n*SPECULAR 0.5\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Tree\r\n#Library : Animator: Shape File Link\r\n#DataSet : Tree\r\n#Category: Trees\r\n#FileID  : AniSTL118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL118.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Tree` Trees` , Shape File\r\n\r\n#MiscYellow0\r\ntranslucent_fix on\r\n#ENDMYellow\r\n\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL119.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Tree, 90`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\tree1.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 0.3\r\nSET_SCALE_Y 0.3\r\nSET_SCALE_Z 0.5\r\nSET_ANGLE_Z 90\r\nSET_ANGLE_Y 0\r\nSET_ANGLE_X 0\r\n*SPECULAR 0.5\r\n#RingCtrl0 obj\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Tree, 90\r\n#Library : Animator: Shape File Link\r\n#DataSet : Tree, 90\r\n#Category: Trees\r\n#FileID  : AniSTL119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL119.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Tree, 90` Trees` , Shape File\r\n\r\ntranslucent_fix on\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL120.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Mulch (Standard)`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\mulch.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.502 0.502 0.502\r\nSET_SCALE_X 0.5\r\nSET_SCALE_Y 0.5\r\nSET_SCALE_Z 0.5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z -0.05\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Mulch (Standard)\r\n#Library : Animator: Shape File Link\r\n#DataSet : Mulch (Standard)\r\n#Category: Trees\r\n#FileID  : AniSTL120\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL120.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Mulch (Standard)` Trees` , Shape File\r\n\r\ntranslucent_fix on\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL121.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Tree Shadow (Standard)`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\tree_shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 0.3\r\nSET_SCALE_Y 0.3\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.05\r\n*TRANSPARENCY 0.3\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.3\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Tree Shadow (Standard)\r\n#Library : Animator: Shape File Link\r\n#DataSet : Tree Shadow (Standard)\r\n#Category: Trees\r\n#FileID  : AniSTL121\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL121.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Tree Shadow (Standard)` Trees` , Shape File\r\n\r\ntranslucent_fix on\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Scenery } Tree\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Tree\r\n#Category: Scenery\r\n#FileID  : StlGroup103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup103.par\r\n\r\n\r\nadd_reference_frame road_stuff_2_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.500613751\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 31.0349208697\r\nset_offset_var_y -6.0692649658\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_3_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.497961224\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 73.4081937736\r\nset_offset_var_y -53.0217998747\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_4_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.498476304\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 109.366981844\r\nset_offset_var_y -50.3872994471\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_5_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.5074014665\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 125.628014981\r\nset_offset_var_y -82.5671330269\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_6_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.503600257\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 161.587989259\r\nset_offset_var_y -79.9323036669\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_7_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.501143793\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 177.850451092\r\nset_offset_var_y -112.112379706\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_8_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.500610543\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 213.809425291\r\nset_offset_var_y -109.478550346\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_9_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.5098319137\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 230.071558273\r\nset_offset_var_y -141.657440412\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_10_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 156.760153798\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 265.47945892\r\nset_offset_var_y -137.716242952\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_11_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -12.1477034826\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 287.966418147\r\nset_offset_var_y -165.786793332\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_12_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 178.942061612\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 320.011736291\r\nset_offset_var_y -149.453468002\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_13_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 10.0430782806\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 351.43228303\r\nset_offset_var_y -166.958502448\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_14_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 194.997837117\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 376.214191279\r\nset_offset_var_y -140.252567826\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_15_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 14.9998974517\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 410.368029396\r\nset_offset_var_y -151.806229631\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_16_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 195.00031918\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 434.169490593\r\nset_offset_var_y -124.722487425\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_17_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 15.0037823302\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 468.324009943\r\nset_offset_var_y -136.275966613\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_18_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 195.052583987\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 492.125162719\r\nset_offset_var_y -109.193571197\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_19_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 5.61126022192\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 525.083691628\r\nset_offset_var_y -123.009894153\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_20_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 174.15608175\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 555.075922838\r\nset_offset_var_y -103.169404641\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_21_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -17.3112596114\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 580.423449027\r\nset_offset_var_y -128.677963631\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_22_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 151.235945449\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 615.775184656\r\nset_offset_var_y -122.082337986\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_23_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -40.2201854838\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 629.1883514\r\nset_offset_var_y -155.449934504\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_24_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 128.34613398\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 664.315692954\r\nset_offset_var_y -163.141753321\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_25_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -55.3330520183\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 665.554424194\r\nset_offset_var_y -199.527386275\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_26_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 124.666102396\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 699.067550628\r\nset_offset_var_y -212.826267143\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_27_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -55.3841095335\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 699.681638019\r\nset_offset_var_y -248.876715674\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_28_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 135.803113044\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 733.794212799\r\nset_offset_var_y -259.227416025\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_29_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -30.4512038048\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 745.556277667\r\nset_offset_var_y -293.166340772\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_30_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 163.312631513\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 780.930822282\r\nset_offset_var_y -286.928573438\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_31_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -2.93788090212\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 807.038162824\r\nset_offset_var_y -311.599896155\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_32_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 190.814286058\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 835.533405976\r\nset_offset_var_y -289.73046457\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_33_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 23.9054324885\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 869.942249998\r\nset_offset_var_y -299.623898168\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_34_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 204.002045021\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 889.265674604\r\nset_offset_var_y -269.127621716\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_35_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 24.0020450214\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 924.806987782\r\nset_offset_var_y -275.195163027\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_36_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 204.002045021\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 944.077530984\r\nset_offset_var_y -244.721466751\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_37_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 24.0020450214\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 970.483534766\r\nset_offset_var_y -254.856700557\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_38_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 204.002045021\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 989.754077968\r\nset_offset_var_y -224.383004281\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_39_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 24.0020450214\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 1025.29539115\r\nset_offset_var_y -230.450545592\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_1_3\r\nreference_frame_ghosts off\r\nset_offset_var_x 171.362854596\r\nset_offset_var_y -103.272060525\r\nset_offset_var_z 0\r\nENTER_PARSFILE Animator\\STL\\AniSTL252.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`S-Curve`Signs\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\road_signs\\s_curve_car\\s_curve_car.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_ANGLE_Z 180\r\nSET_ANGLE_Y 0\r\nSET_ANGLE_X 0\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Signs } S-Curve\r\n#Library : Animator: Shape File Link\r\n#DataSet : S-Curve\r\n#Category: Signs\r\n#FileID  : AniSTL252\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL252.par\r\n\r\n\r\nadd_reference_frame road_stuff_2_3\r\nreference_frame_ghosts off\r\nset_offset_var_x 697.694827215\r\nset_offset_var_y -238.092166248\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_1_4\r\nreference_frame_ghosts off\r\nset_offset_var_x 360.775284314\r\nset_offset_var_y -160.396291356\r\nset_offset_var_z 0\r\nENTER_PARSFILE Animator\\STL\\AniSTL253.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Speed Limit 70`Signs\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\road_signs\\speed_limit\\speed_limit_70.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_ANGLE_Z 90\r\nSET_ANGLE_Y 0\r\nSET_ANGLE_X 0\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Signs } Speed Limit 70\r\n#Library : Animator: Shape File Link\r\n#DataSet : Speed Limit 70\r\n#Category: Signs\r\n#FileID  : AniSTL253\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL253.par\r\n\r\n\r\nadd_reference_frame road_stuff_2_4\r\nreference_frame_ghosts off\r\nset_offset_var_x 877.299979177\r\nset_offset_var_y -291.422736269\r\nset_offset_var_z 0\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { Scenic Roads } Alt 3 from FHWA -LEO Flat\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : Alt 3 from FHWA -LEO Flat\r\n#Category: Scenic Roads\r\n#FileID  : Road135\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-03-2019 18:38:03\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road135.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`Alt 3 from FHWA -LEO Flat` Scenic Roads` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt4_MPC_EM_PathTracking\r\n#Library : Procedures\r\n#DataSet : chapt4_MPC_EM_PathTracking\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc175\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-03-2019 18:53:00\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc175.par\r\n\r\n#BlueLink28 Procedures`chapt4_MPC_EM_PathTracking` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter4_MPC_ErrorModel_PathTracking <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter4_MPC_ErrorModel_PathTracking\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter4_MPC_ErrorModel_PathTracking\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter4_MPC_ErrorModel_PathTracking\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run291\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:40:42\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run291.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/MPC_ErrorModel_PathTracking.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"MPC_ErrorModel_PathTracking\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.259\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"RollModelMPCCurvePathTracking\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2098.0, 53.0, 953.0, 589.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[903.0, 412.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[77.290808107629871, 167.8]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sun Sep 01 23:44:33 2019\"\r\n  RTWModifiedTimeStamp\t  489282261\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:259>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"MPC_ErrorModel_PathTracking\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"MPC_ErrorModel_PathTracking\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"40\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      X0\t\t      \"0\"\r\n      InheritSampleTime\t      off\r\n      LinearizeMemory\t      off\r\n      LinearizeAsDelay\t      off\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"MPC_ErrorModel_PathTracking\"\r\n    Location\t\t    [2098, 53, 3051, 642]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"143\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [330, 179, 430, 241]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_MPC_EM_PathTrackingCtrl.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"135\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [170, 361, 180, 439]\r\n      ZOrder\t\t      30\r\n      BlockMirror\t      on\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[1 10]\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      Name\t\t      \"Memory\"\r\n      SID\t\t      \"143\"\r\n      Position\t\t      [185, 195, 215, 225]\r\n      ZOrder\t\t      34\r\n      X0\t\t      \"1\"\r\n      InheritSampleTime\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [255, 366, 535, 434]\r\n      ZOrder\t\t      12\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_MPC_ec_qpOASES_quadprog\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"136\"\r\n      Position\t\t      [95, 405, 130, 435]\r\n      ZOrder\t\t      31\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [230, 295, 290, 325]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      116\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [151, 0; 0, 190]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      130\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-41, 0]\r\n      Branch {\r\n\tZOrder\t\t\t177\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t176\r\n\tPoints\t\t\t[0, -90]\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      178\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      184\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-52, 0; 0, -170]\r\n      DstBlock\t\t      \"Memory\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      187\r\n      SrcBlock\t\t      \"Memory\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/Main_MPC_ec_CVXGEN.m",
    "content": "function [sys,x0,str,ts] =Main_MPC_ec_CVXGEN(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for path tracking use\r\n% MPC with tracking error model.\r\n% Use constant high speed, curve path tracking \r\n% state vector =[epsi,ed,measured_delta_f]\r\n% control input = [steer_SW]\r\n%\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n%\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 2;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 11;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%-----------------------------------------------------------------------%\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.Lf  = 1.05;\r\n    VehiclePara.Lr  = 1.55;\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n%     VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n%     VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n%     VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n%     VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n%     VehiclePara.Radius = 0.379;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 40;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ts  = 0.1; % 0.1;  \r\n    MPCParameters.Nx  = 2; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 5; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 100;\r\n    CostWeights.deltaf  = 1000;% on Du\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.08; %*MPCParameters.Ts; % Units: rad,0.174rad/s = 10deg/s, 0.08rad/s=4.6deg/s  \r\n    Constraints.umax    = 0.471; % Units: rad.  0.4rad=23deg, 0.471rad=27deg\r\n    \r\n    Constraints.DPhimax = pi/3;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % unit:m. cross-track-error max 2m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n     Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\n\r\n\r\nt_Elapsed       = 0;\r\nCtrl_SteerSW    = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_d             = 0;\r\nfwa_opt         = 0;\r\nfwa_measured    = 0;\r\nStation         = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    fwa_measured  = VehStateMeasured.fwa; % rad\r\n    Station     = VehStateMeasured.Station;\r\n    if(Vel < 1.0)\r\n        Vel = 1.0;\r\n    end\r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefU, Uaug, PrjP] = func_RefTraj_LocalPlanning( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');% \r\n    else\r\n        epsi = PrjP.epsi;  \r\n        if(epsi > pi/2)\r\n           epsi = epsi - pi;\r\n        end\r\n        if(epsi < -pi/2)\r\n           epsi = epsi + pi;\r\n        end\r\n        if(epsi > Constraints.DPhimax)\r\n           epsi = Constraints.DPhimax;\r\n        end\r\n        if(epsi < -Constraints.DPhimax)\r\n           epsi = -Constraints.DPhimax;\r\n        end\r\n        ed   = PrjP.ey;       \r\n        if(ed > Constraints.Dymax)\r\n           ed = Constraints.Dymax;\r\n        end\r\n        if(ed < -Constraints.Dymax)\r\n           ed = -Constraints.Dymax;\r\n        end        \r\n        Xm = [epsi; ed];      \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  update MPC_error_model_augmented SSM ******************%\r\n    % x(k+1) = Au*x(k)+Bu1*u1 + Bu2 * u2\r\n    [StateSpaceModel] = func_Update_ecMPC_SSM(VehiclePara, MPCParameters, Vel);\r\n    \r\n     %****Step(4):  update Constraints and bounds ********************%\r\n%     Np          = MPCParameters.Np;\r\n%     Eymax       = zeros(Np,1);\r\n%     Eymin       = zeros(Np,1);     \r\n%     LM_right    = -5;\r\n%     LM_middle   = 0;\r\n%     Yroad_L     = -2.5;\r\n%     for i =1:1:Np  % עeyǴŵ, Np = 25\r\n%         Eymax(i,1) = (LM_middle - Yroad_L);\r\n%         Eymin(i,1) = (LM_right - Yroad_L);             \r\n%     end\r\n%     [Envelope] = func_ConstraintsBounds(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %**** Update Cost Weighting Regulation functions ********************%\r\n%     Q = diag([CostWeights.Wephi, CostWeights.Wey]);\r\n%     R = CostWeights.deltaf;\r\n    \r\n    [Q, R] = func_CostWeightingRegulation(CostWeights, Constraints);\r\n\r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.xm       = Xm;\r\n    params.um       = fwa_measured; % measured front whee angle\r\n    params.uaug     = Uaug;    \r\n    params.Au       = StateSpaceModel.Au;\r\n    params.Bu       = StateSpaceModel.Bu1;\r\n    params.Ba       = StateSpaceModel.Bu2;\r\n\r\n    params.Q        = Q;  \r\n    params.R\t    = R;     \r\n    \r\n    params.dumax    = Constraints.dumax;\r\n    params.umax     = Constraints.umax;    \r\n\r\n    if (40 == MPCParameters.Np)\r\n       [vars, status] = csolve_Np40(params, settings);       \r\n    else\r\n       [vars, status] = csolve_Np20(params, settings);        \r\n    end\r\n\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0; \r\n%         for i=1:1:20\r\n%             S_opt(i)    = vars.x{i}; \r\n%             U_opt(i)    = vars.u{i}; \r\n%         end  \r\n    else\r\n        fwa_opt = vars.u_0;\r\n        fprintf('CVXGEN not-converged at iter= %d\\n', InitialGapflag);                  \r\n    end\r\n    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    e_psi           = PrjP.epsi;\r\n    e_d             = PrjP.ey;     \r\n\r\nend % end of if Initialflag < 2 % \r\n\r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_d; fwa_opt; fwa_measured]; %\r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10); % deg\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/Main_MPC_ec_qpOASES_quadprog.m",
    "content": "function [sys,x0,str,ts] =Main_MPC_ec_qpOASES_quadprog(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for path tracking use\r\n% MPC with tracking error model.\r\n% Use constant high speed, curve path tracking \r\n% state vector =[epsi,ed,measured_delta_f]\r\n% control input = [steer_SW]\r\n%\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n%\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 3;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 11;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%-----------------------------------------------------------------------%\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.Lf  = 1.05;\r\n    VehiclePara.Lr  = 1.55;\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n%     VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n%     VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n%     VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n%     VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n%     VehiclePara.Radius = 0.379;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 70;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ts  = 0.05; % 0.1;  \r\n    MPCParameters.Nx  = 2; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 5; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 100;\r\n    CostWeights.deltaf  = 1000;% on Du\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.08; %*MPCParameters.Ts; % Units: rad,0.174rad/s = 10deg/s, 0.08rad/s=4.6deg/s  \r\n    Constraints.umax    = 0.471; % Units: rad.  0.4rad=23deg, 0.471rad=27deg\r\n    \r\n    Constraints.DPhimax = pi/3;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % unit:m. cross-track-error max 2m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n\r\n    global WarmStart;\r\n    WarmStart = zeros(MPCParameters.Np,1);\r\n\r\n    global qpOASES_hotstart_flag;\r\n    qpOASES_hotstart_flag = 1;\r\n    \r\n    global qpOASES_QP;\r\n    qpOASES_QP = 0;\r\n    \r\n    global Sol_method;\r\n    Sol_method = 3;% 1- quadprog   \r\n                   % 2- qpOASES  \r\n                   % 3- OPQP                     \r\n                   % 4- gurobi   \r\n    global Reftraj;\r\n     Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\nglobal Sol_method;\r\nglobal WarmStart;\r\nglobal qpOASES_hotstart_flag;\r\nglobal qpOASES_QP;\r\n    \r\nt_Elapsed       = 0;\r\nCtrl_SteerSW    = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_d             = 0;\r\nfwa_opt         = 0;\r\nfwa_measured    = 0;\r\nStation         = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    fwa_measured  = VehStateMeasured.fwa; % rad\r\n    Station     = VehStateMeasured.Station;\r\n    if(Vel < 1.0)\r\n        Vel = 1.0;\r\n    end\r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefK, Uaug, PrjP] = func_RefTraj_LocalPlanning( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');% \r\n    else\r\n        epsi = PrjP.epsi;  \r\n        if(epsi > pi/2)\r\n           epsi = epsi - pi;\r\n        end\r\n        if(epsi < -pi/2)\r\n           epsi = epsi + pi;\r\n        end\r\n        if(epsi > Constraints.DPhimax)\r\n           epsi = Constraints.DPhimax;\r\n        end\r\n        if(epsi < -Constraints.DPhimax)\r\n           epsi = -Constraints.DPhimax;\r\n        end\r\n        ed   = PrjP.ey;       \r\n        if(ed > Constraints.Dymax)\r\n           ed = Constraints.Dymax;\r\n        end\r\n        if(ed < -Constraints.Dymax)\r\n           ed = -Constraints.Dymax;\r\n        end        \r\n%         Xm = [epsi; ed];  \r\n        Xm = [epsi; ed; fwa_measured];\r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  update MPC_error_model_augmented SSM ******************%\r\n    % x(k+1) = Au*x(k)+Bu1*u1 + Bu2 * u2\r\n    [StateSpaceModel] = func_Update_ecMPC_SSM_Augmented(VehiclePara, MPCParameters, Vel);\r\n    \r\n     %****Step(4):  update Constraints and bounds ********************%\r\n    Np   = MPCParameters.Np;\r\n    Nx   = MPCParameters.Nx;\r\n    Nu   = MPCParameters.Nu;\r\n    Naug = Nx + Nu;\r\n    \r\n%     Eymax       = zeros(Np,1);\r\n%     Eymin       = zeros(Np,1);     \r\n%     LM_right    = -5;\r\n%     LM_middle   = 0;\r\n%     Yroad_L     = -2.5;\r\n%     for i =1:1:Np  % עeyǴŵ, Np = 25\r\n%         Eymax(i,1) = (LM_middle - Yroad_L);\r\n%         Eymin(i,1) = (LM_right - Yroad_L);             \r\n%     end\r\n%     [Envelope] = func_ConstraintsBounds(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %**** Update Cost Weighting Regulation functions ********************%\r\n%     Q = diag([CostWeights.Wephi, CostWeights.Wey]);\r\n%     R = CostWeights.deltaf;\r\n    \r\n    [Q, R] = func_CostWeightingRegulation(CostWeights, Constraints);\r\n\r\n    %================MPC problem formulation==================================%\r\n    % Update Theta and PHI, then H and f\r\n    [PHI, THETA, GAMMA] = func_PHI_THETA_Cal(StateSpaceModel, MPCParameters);\r\n\r\n    [H, f, g] = func_H_f_Cal(Xm, Uaug, PHI, THETA, GAMMA, Q, R, MPCParameters); \r\n    \r\n    %=========Call qp-solver==========================%\r\n    switch Sol_method\r\n    case 1 % quadprog\r\n        [A, b, Aeq, beq, lb, ub] = func_Bounds_Constraints_quadprog(MPCParameters, Constraints, fwa_measured);\r\n        options = optimset('Display','off', ...\r\n                            'TolFun', 1e-8, ...\r\n                            'MaxIter', 2000, ...\r\n                            'Algorithm', 'active-set', ...\r\n                            'FinDiffType', 'forward', ...\r\n                            'RelLineSrchBnd', [], ...\r\n                            'RelLineSrchBndDuration', 1, ...\r\n                            'TolConSQP', 1e-8); \r\n        warning off all  % close the warnings during computation     \r\n\r\n        u0 = WarmStart;           \r\n        [U, FVAL, EXITFLAG] = quadprog(H, f, A, b, Aeq, beq, lb, ub, u0, options); %\r\n        WarmStart = shiftHorizon(U);     % Prepare restart, nominal close loop \r\n        fwa_opt = U(1) + fwa_measured;\r\n        \r\n    case 2 % qpOASES\r\n        [A, lb, ub, lbA, ubA] = func_Bounds_Constraints_qpOASES(MPCParameters, Constraints, fwa_measured);\r\n        options = qpOASES_options('default', ...\r\n                            'printLevel', 0); \r\n\r\n        %=======================USE QP==================%\r\n        [U, FVAL, EXITFLAG, iter, lambda] = qpOASES(H, g, A, lb, ub, lbA, ubA, options); %\r\n        \r\n        %=======================USE SQP==================%\r\n%         try\r\n%             H=sparse(H);\r\n%             A=sparse(A);\r\n%         catch\r\n%             fprintf('qpOASES Error reported\\n'); \r\n%         end\r\n%         if (qpOASES_hotstart_flag)\r\n%             [qpOASES_QP, U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('i', H, g, A, lb, ub, lbA, ubA, options);\r\n%             qpOASES_hotstart_flag = 1;\r\n%         else    \r\n%             [U, FVAL, EXITFLAG, iter, lambda] = qpOASES_sequence('m', qpOASES_QP, H, g, A, lb, ub, lbA, ubA, options); %\r\n%         end\r\n        \r\n        fwa_opt = U(1) + fwa_measured;\r\n        \r\n    case 3 %OSQP\r\n        [A, l_constr, u_constr] = func_Bounds_Constraints_OSQP(MPCParameters, Constraints, fwa_measured);\r\n        % define problem\r\n        problem.P = sparse(H);\r\n        problem.q = f;\r\n        problem.A = sparse(A);\r\n        problem.l = [l_constr];\r\n        problem.u = [u_constr];\r\n\r\n        % Setup settings\r\n%         settings.alpha = 1.6;\r\n%         settings.rho = 0.1;\r\n%         settings.sigma = 0.1;\r\n%         settings.eps_prim_inf = 1e-5;\r\n%         settings.eps_dual_inf = 1e-5;\r\n%         settings.eps_rel = 1e-5;\r\n%         settings.eps_abs = 1e-5;\r\n%         settings.max_iter = 2500;\r\n        settings.verbose = 0;\r\n        settings.warm_start = 1;\r\n        settings.scaling = 0; % Disable scaling. Pure Matlab implementation does not support it yet      \r\n        \r\n        % Setup and solve the problem with osqp       \r\n        solver = osqp;\r\n        solver.setup(problem.P, problem.q, problem.A, problem.l, problem.u, settings);\r\n        resOSQP = solver.solve();\r\n        %resOSQP.x: primal variables\r\n        %resOSQP.y: dual variables\r\n        %resOSQP.info.status\r\n        %resOSQP.info.status_val\r\n        %resOSQP.info.polish\r\n        \r\n        if (1 == resOSQP.info.status_val)\r\n            U_opt =  resOSQP.x(1);\r\n        else\r\n            U_opt = 0;\r\n            fprintf('OSQP failed, OSQP_status= %d\\n', resOSQP.info.status_val);     \r\n        end\r\n        fwa_opt =  U_opt + fwa_measured;\r\n        \r\n    case 4 %gurobi\r\n        try\r\n            clear model;\r\n            model.Q = sparse(H);\r\n            model.obj = f';       \r\n            model.A = sparse(A);\r\n            model.rhs = b;\r\n            model.sense = '<';\r\n            model.lb = lb; %(optional)\r\n            model.ub = ub; \r\n            result = gurobi(model);\r\n            U = result.x;\r\n        catch gurobiError\r\n            fprintf('gurobi Error reported\\n');          \r\n        end\r\n        fwa_opt = U(1) + fwa_measured;\r\n        \r\n    otherwise % default\r\n        fprintf('Unknown qp-solver, Sol_method= %d\\n', Sol_method);     \r\n    end % end of switch\r\n    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    e_psi           = PrjP.epsi;\r\n    e_d             = PrjP.ey;     \r\n\r\nend % end of if Initialflag < 2 % \r\n\r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_d; fwa_opt; fwa_measured]; %\r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10); % deg\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\nfunction u0 = shiftHorizon(u) %shift control horizon\r\n    u0 = [u(:,2:size(u,2)), u(:,size(u,2))];  %  size(u,2))\r\n\r\nfunction  [PHI, THETA,GAMMA] = func_PHI_THETA_Cal(StateSpaceModel, MPCParameters)\r\n%***************************************************************%\r\n% Ԥʽ Y(t)=PHI*kesi(t)+THETA*DU(t) \r\n% Y(t) = [Eta(t+1|t) Eta(t+2|t) Eta(t+3|t) ... Eta(t+Np|t)]'\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nx = MPCParameters.Nx;\r\n    Ny = MPCParameters.Ny;\r\n    Nu = MPCParameters.Nu;\r\n    Naug = Nx+Nu;\r\n    Au  = StateSpaceModel.Au;% demision:Naug * Naug\r\n    Bu1 = StateSpaceModel.Bu1;% demision:Naug * Nu\r\n    Bu2 = StateSpaceModel.Bu2;% demision:Naug * Nu    \r\n    C  = StateSpaceModel.C;% demision:Ny * Naug   \r\n\r\n    PHI_cell=cell(Np,1);                            % PHI=[CA CA^2  CA^3 ... CA^Np]' \r\n    THETA_cell=cell(Np,Np);                         % theta\r\n    GAMMA_cell=cell(Np,Np);                         % gamma\r\n    \r\n    PHI_cell{1,1}=C*Au;\r\n    for i=2:1:Np\r\n        PHI_cell{i,1}=PHI_cell{i-1,1}*Au;            % demision:Ny* Naug\r\n    end\r\n    for i=1:1:Np\r\n        for j=1:1:Np\r\n            if i >= j\r\n                CAu = C*Au^(i-j);% demision:Ny * Naug   \r\n                THETA_cell{i,j}=CAu * Bu1;        % demision:Ny*Nu\r\n                GAMMA_cell{i,j}=CAu * Bu2;        % demision:Ny*Nu\r\n            else \r\n                THETA_cell{i,j}=zeros(Ny,Nu);\r\n                GAMMA_cell{i,j}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI   = cell2mat(PHI_cell);%size(PHI)=[(Ny*Np) * Naug]\r\n    THETA = cell2mat(THETA_cell);%size(THETA)=[Ny*Np Nu*Np]\r\n    GAMMA = cell2mat(GAMMA_cell);%size(THETA)=[Ny*Np Nu*Np]\r\n    \r\nfunction  [H, f, g] = func_H_f_Cal(kesi, U_ref, PHI, THETA, GAMMA, YQ, UR, MPCParameters)\r\n%***************************************************************%\r\n% trajectory planning\r\n%***************************************************************%\r\n    Np = MPCParameters.Np;\r\n    Nc = Np;     \r\n    QQ = kron(speye(Np),YQ);  %            Q = [Np*Ny] *  [Np*Ny] \r\n    RR = kron(speye(Nc),UR);  %            R = [Nc*Nu] *  [Nc*Nu]\r\n\r\n    error = PHI * kesi + GAMMA * cell2mat(U_ref); %[(Nx*Np) * 1]\r\n\r\n    H = THETA'*QQ*THETA + RR;  \r\n    f = error'*QQ*THETA;\r\n    g = f';\r\n    \r\nfunction  [A, b, Aeq, beq, lb, ub] = func_Bounds_Constraints_quadprog(MPCParameters, Constraints, um)\r\n%************************************************************************%\r\n% generate the constraints of the vehicle\r\n%  \r\n%************************************************************************%\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    dumax = Constraints.dumax;\r\n    umax = Constraints.umax;  \r\n    Umin = kron(ones(Nc,1),-umax);\r\n    Umax = kron(ones(Nc,1),umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) A*x<=b----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_cell=cell(2,1);\r\n    A_cell{1,1} = A_t; %\r\n    A_cell{2,1} = -A_t;\r\n    A=cell2mat(A_cell);  %\r\n    \r\n    \r\n    b_cell=cell(2, 1);\r\n    b_cell{1,1} = Umax - Ut; %\r\n    b_cell{2,1} = -Umin + Ut;\r\n    b=cell2mat(b_cell);  % \r\n\r\n%----(2) Aeq*x=beq----------%\r\n    Aeq = [];\r\n    beq = [];\r\n\r\n%----(3) lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),-dumax);\r\n    ub=kron(ones(Nc,1),dumax);\r\n\r\nfunction [A_t, lb, ub, lbA, ubA] = func_Bounds_Constraints_qpOASES(MPCParameters, Constraints, um)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    dumax = Constraints.dumax;\r\n    umax = Constraints.umax;  \r\n    Umin = kron(ones(Nc,1),-umax);\r\n    Umax = kron(ones(Nc,1),umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) lbA <= A*x<=ubA----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n\r\n    ubA = Umax - Ut; %\r\n    lbA = Umin - Ut;\r\n%---- lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1),-dumax);\r\n    ub=kron(ones(Nc,1),dumax);\r\n\r\n\r\nfunction [A, l_constr, u_constr] = func_Bounds_Constraints_OSQP(MPCParameters, Constraints, um)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;    \r\n    dumax = Constraints.dumax;\r\n    umax = Constraints.umax;  \r\n    Umin = kron(ones(Nc,1),-umax);\r\n    Umax = kron(ones(Nc,1),umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) lbA <= A*x<=ubA----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n\r\n    A_cell=cell(2,1);\r\n    A_cell{1,1} = A_t; %\r\n    A_cell{2,1} = eye(Np);\r\n    A=cell2mat(A_cell);  %\r\n    \r\n    \r\n    l_constr=cell(2, 1);\r\n    u_constr=cell(2, 1);\r\n    l_constr{1,1} = Umin - Ut;    \r\n    u_constr{1,1} = Umax - Ut; %\r\n    l_constr{2,1} = kron(ones(Nc,1),-dumax);    \r\n    u_constr{2,1} = kron(ones(Nc,1),dumax); %\r\n    l_constr=cell2mat(l_constr);  % \r\n    u_constr=cell2mat(u_constr);  % \r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/ReadMe",
    "content": "MPC Path tracking use error model\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/ResultData_Plot.m",
    "content": "\r\n% sys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_d; fwa_opt; fwa_measured]; %\r\nclose all\r\nlw = 2;\r\nNum = length(u.signals.values(:,2));\r\n\r\nCtrl_SteerSW     = u.signals.values(:,1);\r\nt_Elapsed   = u.signals.values(:,2);\r\nPosX        = u.signals.values(:,3);\r\nPosY        = u.signals.values(:,4);\r\nPosPsi      = u.signals.values(:,5);\r\nStation     = u.signals.values(:,6);\r\nVel         = u.signals.values(:,7);\r\ne_psi       = u.signals.values(:,8);\r\ne_y         = u.signals.values(:,9);\r\nfwa_opt          = u.signals.values(:,10);\r\nfwa_measured     = u.signals.values(:,11);\r\n\r\n%%\r\nfigure % Vel\r\nplot(1:Num, fwa_opt,'b',1:Num, fwa_measured,'k','Linewidth',lw);\r\ngrid on\r\nlegend('fwa_opt','fwa_measured');\r\n\r\nfigure % \r\nplot(1:Num, e_psi,'b','Linewidth',lw);\r\ngrid on\r\nlegend('e_{psi}');\r\n\r\nfigure % \r\nplot(1:Num, e_y,'k','Linewidth',lw);\r\ngrid on\r\nlegend('e_d');\r\n\r\nfigure % \r\nplot(1:Num, t_Elapsed,'k','Linewidth',lw);\r\ngrid on\r\nlegend('t_Elapsed');\r\n\r\n\r\nfigure % \r\nplot(PosX, PosY,'b','Linewidth',lw);\r\ngrid on\r\nlegend('traj');\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/SaveSimResData2Mat.m",
    "content": "\r\nSimResData = u.signals.values(:,:);\r\n\r\nsave SimData_CVXGEN_Np40.mat SimResData;"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_ConstraintsBounds.m",
    "content": "function [Envelope] = func_ConstraintsBounds(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat, EY_MAX, EY_Min)\r\n    %  Generating safe driving envelope \r\n    h       = VehiclePara.hCG;\r\n    Tr      = VehiclePara.Tr;\r\n    lf      = VehiclePara.Lf;\r\n    lr      = VehiclePara.Lr;\r\n    l       = VehiclePara.L;\r\n    M       = VehiclePara.m;       \r\n    g       = VehiclePara.g;\r\n    mu      = VehiclePara.mu;\r\n    Iz      = VehiclePara.Iz;   %IΪZתв  \r\n    Ix      = VehiclePara.Ix;   %IΪZתв  \r\n    Np      = MPCParameters.Np;\r\n    Ns      = MPCParameters.Ns;\r\n    Alphar_lim = Constraints.arlim;\r\n    \r\n    %-----------environmental envelope-------------%\r\n    Envelope.Henv  = [0   0   0   0   1     0;\r\n                      0   0   0   0   -1    0]; \r\n                  \r\n    Envelope.Genv  = cell(Np,1); \r\n    Dist_temp      = 0.8; % dw/2 + dbuffer; \r\n    for i = 1:1:Np\r\n       Envelope.Genv{i,1} = [EY_MAX(i) - Dist_temp;\r\n                             -EY_Min(i) - Dist_temp]; \r\n    end  \r\n\r\n    %-----------stable handling envelope-------------%\r\n%     for j = 1:1:Np\r\n        Envelope.Hsh  = [1/Vel   -lr/Vel    0   0    0   0;\r\n                         0         1        0   0    0   0];   \r\n        Envelope.Psh  = [0  0;  g/Vel   0];\r\n        \r\n        r_ssmax = -CarHat*Alphar_lim*(1+lr/lf)/(M*Vel);                  \r\n\r\n        Envelope.Gsh  = [Alphar_lim    r_ssmax]';                  \r\n%     end\r\n\r\n   %-----------zero moment point -------------% \r\n   Acn = StateSpaceModel.Acn;  % 8*8\r\n   B1cn = StateSpaceModel.B1cn; %8*1\r\n   B2cn = StateSpaceModel.B2cn;%8*2\r\n   \r\n%    N1 = [h/g    0            -Ix/(M*g)   0   0   0];\r\n%    N2 = [0      h*Vel/g      0           h   0   0]; %\r\n%    N3 = [h  0];\r\n\r\n   N1 = [2*h/(g*Tr)     0                   -2*(M*h*h+Ix)/(M*g*Tr)      0         0   0];\r\n   N2 = [0              2*h*Vel/(g*Tr)     0                            2*h/Tr    0   0]; %\r\n%    N3 = [2*h/Tr         0];\r\n\r\n   \r\n   H_yzmp   = N1*Acn + N2;%1*8\r\n   P_yzmp1  = N1*B1cn; %1*1\r\n   P_yzmp2  = N1*B2cn; % + N3;%1*2\r\n   \r\n   Envelope.H_yzmp  = H_yzmp;\r\n   Envelope.P_yzmp1 = P_yzmp1;\r\n   Envelope.P_yzmp2 = P_yzmp2;\r\n    \r\nend  % end of func_SafedrivingEnvelope "
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_CostWeightingRegulation.m",
    "content": "function [Ql, Rdun] = func_CostWeightingRegulation(CostWeights, Constraints)\r\n\r\n%% ʼ\r\n    Qephi   = CostWeights.Wephi;\r\n    Qey     = CostWeights.Wey;\r\n    RDdeltaf= CostWeights.deltaf;    \r\n\r\n    DPhimax = Constraints.DPhimax;  %  0.15 rad ==> 8.5deg\r\n    Dymax   = Constraints.Dymax;\r\n    dumax   = Constraints.dumax;\r\n    \r\n    %% Ȩӹһ\r\n    Qephi_DPhimax2  = Qephi/(DPhimax*DPhimax);\r\n    Qey_Dymax2      = Qey/(Dymax*Dymax);    \r\n    Ql              = diag([Qephi_DPhimax2, Qey_Dymax2]);\r\n   \r\n    dumax2   = (dumax * dumax);% \r\n    Rdun     = RDdeltaf/dumax2;\r\n    \r\n    \r\nend % end of func_CostWeightingRegulation"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_FindBezierControlPointsND.m",
    "content": "% INPUT\r\n% Data: A set of \"n\" points (p1,p2,...pn).\r\n% Each point can be in N-dimension vector space\r\n% % (i.e. points to be approximated by Cubic Bezier Curve\r\n%       e.g. p for 3D p=[0   5   0;      % p1\r\n%                        1   5   0.5;    % p2\r\n%                        1.3 4.5 1;      % p3\r\n%                        2   5   2]      % p4\r\n% ptype(optional arg): parameterization type, defualt is chord-length\r\n% parameterization. user can pass 'u' or 'uniform', for uniform parameterization.\r\n\r\n% OUTPUT\r\n% Four Control Points: P0, P1, P2, P3, each in N-dimension space\r\n%  parameterized values i.e. t (optional)\r\n\r\n% OBJECTIVE\r\n% We want to find control points of Bezier Curve that fit the data\r\n% p.\r\n\r\n% SOLUTION\r\n% Least Square Method using specified Parameterization (Chord-length\r\n% defualt)\r\n% (P0 & P3) are end points of a bezier curve segment. So they\r\n% are taken equal to first and last point of data. \r\n% (P1 & P2) are obtained by partially differeciating the Sum of Square\r\n% distance between original data and parametric curve w.r.t P1 & P2 and then\r\n% solving for two unknowns P1 & P2.\r\n\r\nfunction [P0, P1, P2, P3, tout]= func_FindBezierControlPointsND(p,varargin)\r\n\r\n%%% Default Values %%%\r\nptype='';\r\ndefaultValues = {ptype};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[ptype] = deal(defaultValues{:});\r\n%%%------------------------------\r\n\r\nn=size(p,1);              % number of rows in p\r\n\r\nif (strcmpi(ptype,'u') || strcmpi(ptype,'uniform') )\r\n    [t]=linspace(0,1,n);      % uniform parameterized values (normalized b/w 0 to 1)\r\nelse\r\n    [t]=ChordLengthNormND(p); % chord-length parameterized values (normalized b/w 0 to 1)\r\nend\r\n\r\nP0=p(1,:);       % (at t=0 => P0=p1)\r\nP3=p(n,:);       % (at t=1 => P3=pn)\r\n\r\nif (n==1)      % if only one value in p\r\n   P1=P0;      % P1=P0\r\n   P2=P0;      % P2=P0\r\n   \r\nelseif (n==2)  % if only two values in p\r\n   P1=P0;      % P1=P0\r\n   P2=P3;      % P2=P3\r\n   \r\nelseif (n==3)  % if only three values in p\r\n   P1=p(2,:);    % middle point is P1\r\n   P2=p(2,:);    % middle point is P2\r\n\r\nelse\r\n    \r\n   A1=0;\tA2=0;\tA12=0;\tC1=0;\tC2=0; %initialization\r\n    for i=2:n-1 \r\n%    for i=1:n    %it will give same CPs as   i=2:n-1   \r\n      B0 = (1-t(i))^3            ;        % Bezeir Basis\r\n      B1 = ( 3*t(i)*(1-t(i))^2 ) ;\r\n      B2 = ( 3*t(i)^2*(1-t(i)) ) ;\r\n      B3 = t(i)^3                ;\r\n      \r\n      A1  = A1 +  B1^2;\r\n      A2  = A2 +  B2^2;\r\n      A12 = A12 + B1*B2;\r\n      C1 = C1 + B1*( p(i,:) - B0*P0 - B3*P3 );\r\n      C2 = C2 + B2*( p(i,:) - B0*P0 - B3*P3 );\r\n      \r\n   end\r\n   \r\n   DENOM=(A1*A2-A12*A12);       % common denominator for all points\r\n   if(DENOM==0)\r\n       P1=P0;\r\n       P2=P3;\r\n   else\r\n       P1=(A2*C1-A12*C2)/DENOM;\r\n       P2=(A1*C2-A12*C1)/DENOM;\r\n   end\r\n   \r\nend            % END of if-elseif-else conditon\r\n\r\nif(nargout==5) % if number of output argument=1 \r\n    tout=t;\r\nend\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_RefTraj_LocalPlanning.m",
    "content": "function [WPIndex, RefP, RefK, Uaug, PrjP] = func_RefTraj_LocalPlanning( MPCParameters, VehiclePara, WayPoints_Index, WayPoints_Collect, VehStateMeasured)\r\n%***************************************************************%\r\n% ҵȫ·Ͼ복ĵ (൱ͶӰ)\r\n% ΣݲsѡһЩвο㲢תϵ¡οϢ[s,x,y]\r\n% ٴΣԳϵµx,yBezierֵ߲ĺǺʡ\r\n% 󣬽οĲRefP, RefUUaug\r\n%\r\n% Input:\r\n% MPCParameters\r\n% WayPoints_Index\r\n% WayPoints_Collect\r\n% VehStateMeasured\r\n% \r\n% Output:\r\n% WPIndex \r\n%     > 0Normal, WPIndex = index_min;\r\n%     0:error,index_min<1\r\n%     -1: index_min = WPNum,ȫ·ľͷͣ\r\n\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My homepage: https://sites.google.com/site/kailiumiracle/  \r\n%***************************************************************%\r\n\r\n%*********** Parameters Initialization *************************% \r\n    L       = VehiclePara.L;   % \r\n    Np      = MPCParameters.Np;% Ԥʱ\r\n    Ts      = MPCParameters.Ts; % Set the sample time\r\n\r\n    %------Measured or Estimated vehicle status\r\n    Vel     = VehStateMeasured.x_dot;\r\n    PosX    = VehStateMeasured.X;\r\n    PosY    = VehStateMeasured.Y;\r\n    PosPsi  = VehStateMeasured.phi;      \r\n    \r\n%*********** WaypointData2VehicleCoords ************************% \r\n    ds          = 0.1;%unit:m, ·֮ľ\r\n    WPNum       = length(WayPoints_Collect(:,1));\r\n    \r\n    %--------ҵο·Ͼ복ĵ--------------------------%  \r\n    Dist_MIN    = 10000;\r\n    index_min   = 0;\r\n    for i = WayPoints_Index:1:WPNum \r\n        deltax  = WayPoints_Collect(i,2) - PosX;\r\n        deltay  = WayPoints_Collect(i,3) - PosY;\r\n        Dist    = sqrt(power(deltax,2) + power(deltay,2));% ·㵽ĵľ\r\n        if Dist < Dist_MIN\r\n            Dist_MIN  = Dist; \r\n            index_min = i;\r\n        end\r\n    end\r\n    if (index_min < 1) \r\n        WPIndex = -1; %ûҵ򡣡\r\n    else if ( index_min >= WPNum)\r\n            WPIndex = -2; %ûҵ򡣡\r\n        else\r\n            WPIndex = index_min;\r\n        end\r\n    end\r\n    \r\n\r\n    if( WPIndex > 0 )   % ҵ\r\n    %% ѡͶӰ㣬 ȫ·ѡο㣬ת¡   \r\n        %--------------ͨͶӰ--------------------------%\r\n        [PPx,PPy,ey]=func_GetProjectPoint(WayPoints_Collect(index_min,2),... \r\n                                            WayPoints_Collect(index_min,3),... \r\n                                            WayPoints_Collect(index_min+1,2),... \r\n                                            WayPoints_Collect(index_min+1,3),... \r\n                                            PosX,... \r\n                                            PosY);\r\n        Dy          = WayPoints_Collect(index_min+1,3) - WayPoints_Collect(index_min,3);\r\n        Dx          = WayPoints_Collect(index_min+1,2) - WayPoints_Collect(index_min,2);\r\n        Psi0        = atan2(Dy, Dx); % [-pi, pi]\r\n        epsi        = PosPsi - Psi0;%  - ·򣬣ʱΪ\r\n        \r\n        PrjP.epsi   = epsi;%\r\n        PrjP.ey     = ey;%eyķΪ,ڲο·\r\n        PrjP.Velr   = Vel;                                        \r\n        PrjP.xr     = PPx;\r\n        PrjP.yr     = PPy;\r\n        PrjP.psir   = Psi0;\r\n        PrjP.fwar   = 0; %atan(Kprj*L);  \r\n\r\n        %-------------------i=1:Np--ݳȫֲο·ѡο-------%\r\n        Local_Sx        = [];\r\n        Local_Sy        = [];\r\n        StepLength_S    = Vel * Ts *  (Np+1);% һΪʱ׼\r\n            \r\n        tempDx          = WayPoints_Collect(index_min+1,2) - PPx;\r\n        tempDy          = WayPoints_Collect(index_min+1,3) - PPy;\r\n        Dist_1          = sqrt(power(tempDx,2) + power(tempDy,2)); %·㵽ͶӰľ \r\n\r\n        for i=index_min:1:WPNum %ڲο·ѡο,ͨתתϵ\r\n            deltax          = WayPoints_Collect(i,2) - PosX;\r\n            deltay          = WayPoints_Collect(i,3) - PosY;\r\n            CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n            CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi); % ȫ·תֲ              \r\n            Local_Sx        = [Local_Sx; CarCoord_x];\r\n            Local_Sy        = [Local_Sy; CarCoord_y];  %洢ֲµĵ  \r\n                    \r\n            Dist_SumS       = Dist_1 + WayPoints_Collect(i,7) - WayPoints_Collect(index_min+1,7);  \r\n            if(Dist_SumS >= StepLength_S)\r\n                break;\r\n            end            \r\n        end % end of   for I=index_min+1:1:WPNum           \r\n        \r\n        %%\r\n        %------------ʽ------------%\r\n        if(Dist_SumS < StepLength_S)\r\n           WPIndex = 0; %ûҵ򡣡 % reaching the end ... %--ûпȫ·󼸸ʱ걸пܻᱨ           \r\n        else\r\n             %----BezierϣŵڿԶ-----%\r\n            MatS(:,1)=Local_Sx; \r\n            MatS(:,2)=Local_Sy;             \r\n            [ps0,ps1,ps2,ps3,ts] = func_FindBezierControlPointsND(MatS,'u'); %uniform parameterization\r\n            Scale                = round(Vel*Ts/ds);\r\n            tlocS                = linspace(0,1,Scale*(Np+1)+1);   %㵽յȾ=0.1m,Np+1ΣScale*Np+1+1\r\n            MatLocalInterpS      = func_bezierInterp( ps0, ps1, ps2, ps3,tlocS);   % ֵ߲õ       \r\n            \r\n            Bezier_Sx       = zeros(Np,1);\r\n            Bezier_Sy       = zeros(Np,1);\r\n            Bezier_Spsi     = zeros(Np,1);\r\n            Bezier_SK       = zeros(Np,1);         \r\n            for i = 2:1:Np+1\r\n                Bezier_Sx(i-1)    = MatLocalInterpS(Scale*(i-1),1);\r\n                Bezier_Sy(i-1)    = MatLocalInterpS(Scale*(i-1),2);\r\n                tempDx            = MatLocalInterpS(Scale*(i-1)+1,1) - MatLocalInterpS(Scale*(i-1),1);\r\n                tempDy            = MatLocalInterpS(Scale*(i-1)+1,2) - MatLocalInterpS(Scale*(i-1),2);\r\n                Bezier_Spsi(i-1)  = atan2(tempDy, tempDx);\r\n                \r\n                Bezier_SK(i-1)    = func_CalPathCurve_Patent(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n                                       MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n                                       MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n                                       MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n                                       MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n                                       MatLocalInterpS(Scale*(i-1)+1,2));      % YC            \r\n            end % end of  for i = 2:1:length(MatLocalInterp(:,1))-1\r\n            \r\n    %%\r\n        RefP    = cell(Np,1);        \r\n        RefK    = cell(Np,1); \r\n        Uaug    = cell(Np,1);      \r\n        for i = 1:1:Np\r\n           Uaug{i,1} = atan(Bezier_SK(i)*L);  \r\n           RefK{i,1} = -Bezier_SK(i);     \r\n           RefP{i,1} = [Bezier_Sx(i);\r\n                        Bezier_Sy(i);\r\n                        Bezier_Spsi(i)]; \r\n        end\r\n\r\n        end % end of if(Dist_SumS < StepLength_S) || (Dist_SumL < StepLength_L)\r\n        \r\n    end % end of if( WPIndex > 0 )   % ҵ\r\n\r\nend % end of function \r\n\r\n\r\n%==============================================================%\r\n% sub functions\r\n%==============================================================%   \r\nfunction K=GetPathHeading(Xb,Yb,Xn,Yn)\r\n    %***Way I.Heading Angle [-pi,pi]֮ *******%\r\n    AngleY=Yn-Yb;\r\n    AngleX=Xn-Xb;\r\n    K= atan2(AngleY, AngleX);\r\n    \r\n    %***Way II. Heading Angle 0~2*pi֮ *******%\r\n%     AngleY=Yn-Yb;\r\n%     AngleX=Xn-Xb;    \r\n%     \r\n%     if Xb==Xn\r\n%         if Yn>Yb\r\n%             K=pi/2;\r\n%         else\r\n%             K=3*pi/2;\r\n%         end\r\n%     else\r\n%         if Yb==Yn\r\n%             if Xn>Xb\r\n%                 K=0;\r\n%             else\r\n%                 K=pi;\r\n%             end\r\n%         else\r\n%             K=atan(AngleY/AngleX);\r\n%         end    \r\n%     end\r\n% \r\n%     %****K,ʹ֮0~360֮*****%\r\n%    if (AngleY>0&&AngleX>0)%һ\r\n%         K=K;\r\n%     elseif (AngleY>0&&AngleX<0)||(AngleY<0&&AngleX<0)%ڶ\r\n%         K=K+pi;\r\n%     else if (AngleY<0&&AngleX>0)%\r\n%             K=K+2*pi;  \r\n%         else\r\n%             K=K;\r\n%         end\r\n%    end\r\n    \r\nend % end of function\r\n\r\nfunction [PPx,PPy,de]=func_GetProjectPoint(Xb,Yb,Xn,Yn,Xc,Yc)\r\n%-------------------------------------------------------%\r\n% ͨ㵽ֱߵľ붨ΪҸ\r\n% de㵽ֱߵľķ岻ͬ෴\r\n%  deķΪ\r\n%-------------------------------------------------------%\r\n\r\n    if Xn==Xb\r\n        x=Xn;\r\n        y=Yc;\r\n        de=Xc-Xn;\r\n    else if Yb==Yn\r\n            x=Xc;\r\n            y=Yn;\r\n            de=Yn-Yc;\r\n        else\r\n            DifX=Xn-Xb;\r\n            DifY=Yn-Yb;\r\n            Kindex=DifY/DifX;\r\n            bindex=Yn-Kindex*Xn;\r\n            \r\n            K=(-1)*1/Kindex;\r\n            b=Yc-K*Xc;\r\n            x=(bindex-b)/(K-Kindex);\r\n            y=K*x+b;\r\n            de=(Kindex*Xc+bindex-Yc)/sqrt(1+Kindex*Kindex);\r\n        end     \r\n    end\r\n    PPx=x;\r\n    PPy=y;\r\n       \r\nend\r\n\r\nfunction K=func_CalPathCurve_Patent(XA,YA,XB,YB,XC,YC)\r\n    %% \r\n    x_dot       = XC - XA;\r\n    y_dot       = YC - YA;\r\n    x_dotdot    = XC + XA - 2*XB;\r\n    y_dotdot    = YC + YA - 2*YB;\r\n    temp        = x_dot*x_dot + y_dot*y_dot;\r\n    K= 4*(x_dot*y_dotdot - x_dotdot*y_dot )/ power(temp, 1.5);\r\n\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_Update_ecMPC_SSM.m",
    "content": "%***************************************************************%\r\n% Deem Vx as constant\r\n%***************************************************************%\r\nfunction [StateSpaceModel] = func_Update_ecMPC_SSM(VehiclePara, MPCParameters, Vel)\r\n    % generate State-space model\r\n   \r\n\r\nlfr = VehiclePara.L;  %a = 1.11;  \r\nTs  = MPCParameters.Ts;\r\n\r\n% Au = [1,        0,  Vel*Ts/lfr;\r\n%       -Vel*Ts,  1,  0;\r\n%       0,        0,  1];\r\n% Bu1 = [Vel*Ts/lfr; 0; 1];\r\n% Bu2 = [-Vel*Ts/lfr; 0; 0];\r\n% C = [1, 0, 0;\r\n%      0, 1, 0];\r\n\r\nAu = [1,        0;\r\n      -Vel*Ts,  1];\r\nBu1 = [Vel*Ts/lfr; 0];\r\nBu2 = [-Vel*Ts/lfr; 0];\r\n \r\n    StateSpaceModel.Au  = Au;\r\n    StateSpaceModel.Bu1 = Bu1; \r\n    StateSpaceModel.Bu2 = Bu2;\r\n    \r\nend % EoF\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_Update_ecMPC_SSM_Augmented.m",
    "content": "function [StateSpaceModel] = func_Update_ecMPC_SSM_Augmented(VehiclePara, MPCParameters, Vel)\r\n    % generate State-space model\r\n   \r\n\r\nlfr = VehiclePara.L; \r\nTs  = MPCParameters.Ts;\r\n\r\nAu = [1,        0,  Vel*Ts/lfr;\r\n      -Vel*Ts,  1,  0;\r\n      0,        0,  1];\r\nBu1 = [Vel*Ts/lfr; 0; 1];\r\nBu2 = [-Vel*Ts/lfr; 0; 0];\r\nC = [1, 0, 0;\r\n     0, 1, 0];\r\n \r\n    StateSpaceModel.Au  = Au;\r\n    StateSpaceModel.Bu1 = Bu1; \r\n    StateSpaceModel.Bu2 = Bu2;\r\n    StateSpaceModel.C   = C;    \r\nend % EoF\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/func_bezierInterp.m",
    "content": "% Bezier interpolation for given four control points.\r\n% Each control point can be in N-Dimensional vector space.\r\n% Input:\r\n% P0,P1,P2,P3: four control points of bezier curve,\r\n%              control points can have any number of coordinates\r\n% t(optional arg):vector that holds paramter t values b/w 0 and 1 at which \r\n%                 bezier curve is evaluated (default 101 values between 0\r\n%                 and 1.)\r\n\r\n% Output:\r\n% Q evaluated values of bezier curves. Number of columns of Q are equal to\r\n% number of coordinates in control point. For example for 2-D, Q has two\r\n% columns. Column 1 for x value and column 2 for y values. Similarly for\r\n% 3-D, Q will have three columns\r\n\r\nfunction Q=func_bezierInterp(P0,P1,P2,P3,varargin)\r\n\r\n%%% Default Values %%%\r\nt=linspace(0,1,101); % uniform parameterization \r\ndefaultValues = {t};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[t] = deal(defaultValues{:});\r\n% % --------------------------------\r\nM=[-1  3 -3 1;\r\n    3 -6  3 0;\r\n   -3  3  0 0;\r\n    1  0  0 0];\r\nfor k=1:length(t)\r\n    Q(k,:)=[t(k)^3 t(k)^2 t(k) 1]*M*[P0;P1;P2;P3];\r\nend\r\n% % Ref: Mathematical Elements of Computer Graphics by\r\n% %      David F. Rogers and J. Alan Adams (pg. 296)\r\n% % --------------------------------\r\n% % OR\r\n% % Equation of Bezier Curve, utilizes Horner's rule for efficient computation.\r\n% % Q(t)=(-P0 + 3*(P1-P2) + P3)*t^3 + 3*(P0-2*P1+P2)*t^2 + 3*(P1-P0)*t + Px0\r\n% c3 = -P0 + 3*(P1-P2) + P3;\r\n% c2 = 3*(P0 - (2*P1)+P2); \r\n% c1 = 3*(P1 - P0);\r\n% c0 = P0;\r\n% for k=1:length(t)\r\n%     Q(k,:)=((c3*t(k)+c2)*t(k)+c1)*t(k) + c0;    \r\n% end\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/osqp.m",
    "content": "classdef osqp < handle\r\n    % osqp interface class for OSQP solver v0.5.0\r\n    % This class provides a complete interface to the C implementation\r\n    % of the OSQP solver.\r\n    %\r\n    % osqp Properties:\r\n    %   objectHandle - pointer to the C structure of OSQP solver\r\n    %\r\n    % osqp Methods:\r\n    %\r\n    %   setup             - configure solver with problem data\r\n    %   solve             - solve the QP\r\n    %   update            - modify problem vectors\r\n    %   warm_start        - set warm starting variables x and y\r\n    %\r\n    %   default_settings  - create default settings structure\r\n    %   current_settings  - get the current solver settings structure\r\n    %   update_settings   - update the current solver settings structure\r\n    %\r\n    %   get_dimensions    - get the number of variables and constraints\r\n    %   version           - return OSQP version\r\n    %   constant          - return a OSQP internal constant\r\n    %\r\n    %   codegen           - generate embeddable C code for the problem\r\n\r\n\r\n    properties (SetAccess = private, Hidden = true)\r\n        objectHandle % Handle to underlying C instance\r\n    end\r\n   methods(Static) \r\n        %%\r\n        function out = default_settings()\r\n            % DEFAULT_SETTINGS get the default solver settings structure\r\n            out = osqp_mex('default_settings', 'static');\r\n\r\n\t        % Convert linsys solver to string\r\n\t        out.linsys_solver = linsys_solver_to_string(out.linsys_solver);\r\n\r\n        end\r\n        \r\n        %%\r\n        function out = constant(constant_name)\r\n            % CONSTANT Return solver constant\r\n            %   C = CONSTANT(CONSTANT_NAME) return constant called CONSTANT_NAME\r\n            out = osqp_mex('constant', 'static', constant_name);\r\n        end\r\n        \r\n        %%\r\n        function out = version()\r\n            % Return OSQP version\r\n            out = osqp_mex('version', 'static');\r\n        end\r\n        \r\n    end\r\n    methods\r\n        %% Constructor - Create a new solver instance\r\n        function this = osqp(varargin)\r\n            % Construct OSQP solver class\r\n            this.objectHandle = osqp_mex('new', varargin{:});\r\n        end\r\n\r\n        %% Destructor - destroy the solver instance\r\n        function delete(this)\r\n            % Destroy OSQP solver class\r\n            osqp_mex('delete', this.objectHandle);\r\n        end\r\n\r\n        %%\r\n        function out = current_settings(this)\r\n            % CURRENT_SETTINGS get the current solver settings structure\r\n            out = osqp_mex('current_settings', this.objectHandle);\r\n\r\n\t   % Convert linsys solver to string\r\n\t   out.linsys_solver = linsys_solver_to_string(out.linsys_solver);\r\n\r\n        end\r\n\r\n        %%\r\n        function update_settings(this,varargin)\r\n            % UPDATE_SETTINGS update the current solver settings structure\r\n\r\n            %second input 'false' means that this is *not* a settings\r\n            %initialization, so some parameter/values will be disallowed\r\n            newSettings = validateSettings(this,false,varargin{:});\r\n\r\n            %write the solver settings.  C-mex does not check input\r\n            %data or protect against disallowed parameter modifications\r\n            osqp_mex('update_settings', this.objectHandle, newSettings);\r\n\r\n        end\r\n\r\n        %%\r\n        function [n,m]  = get_dimensions(this)\r\n            % GET_DIMENSIONS get the number of variables and constraints\r\n\r\n            [n,m] = osqp_mex('get_dimensions', this.objectHandle);\r\n\r\n        end\r\n\r\n        %%\r\n        function update(this,varargin)\r\n            % UPDATE modify the linear cost term and/or lower and upper bounds\r\n\r\n            %second input 'false' means that this is *not* a settings\r\n            %initialization, so some parameter/values will be disallowed\r\n            allowedFields = {'q','l','u','Px','Px_idx','Ax','Ax_idx'};\r\n\r\n            if(isempty(varargin))\r\n                return;\r\n            elseif(length(varargin) == 1)\r\n                if(~isstruct(varargin{1}))\r\n                    error('Single input should be a structure with new problem data');\r\n                else\r\n                    newData = varargin{1};\r\n                end\r\n            else % param / value style assumed\r\n                newData = struct(varargin{:});\r\n            end\r\n\r\n            %check for unknown fields\r\n            newFields = fieldnames(newData);\r\n            badFieldsIdx = find(~ismember(newFields,allowedFields));\r\n            if(~isempty(badFieldsIdx))\r\n                 error('Unrecognized input field ''%s'' detected',newFields{badFieldsIdx(1)});\r\n            end\r\n\r\n            %get all of the terms.  Nonexistent fields will be passed\r\n            %as empty mxArrays\r\n            try q = double(full(newData.q(:))); catch q = []; end\r\n            try l = double(full(newData.l(:))); catch l = []; end\r\n            try u = double(full(newData.u(:))); catch u = []; end\r\n            try Px = double(full(newData.Px(:))); catch Px = []; end\r\n            try Px_idx = double(full(newData.Px_idx(:))); catch Px_idx = []; end\r\n            try Ax = double(full(newData.Ax(:))); catch Ax = []; end\r\n            try Ax_idx = double(full(newData.Ax_idx(:))); catch Ax_idx = []; end\r\n\r\n            [n,m]  = get_dimensions(this);\r\n\r\n            assert(isempty(q) || length(q) == n, 'input ''q'' is the wrong size');\r\n            assert(isempty(l) || length(l) == m, 'input ''u'' is the wrong size');\r\n            assert(isempty(u) || length(u) == m, 'input ''l'' is the wrong size');\r\n            assert(isempty(Px) || isempty(Px_idx) || length(Px) == length(Px_idx), ...\r\n                'inputs ''Px'' and ''Px_idx'' must be the same size');\r\n            assert(isempty(Ax) || isempty(Ax_idx) || length(Ax) == length(Ax_idx), ...\r\n                'inputs ''Ax'' and ''Ax_idx'' must be the same size');\r\n\r\n            % Adjust index of Px_idx and Ax_idx to match 0-based indexing\r\n            % in C\r\n            if (~isempty(Px_idx))\r\n                Px_idx = Px_idx - 1;\r\n            end\r\n            if (~isempty(Ax_idx))\r\n                Ax_idx = Ax_idx - 1;\r\n            end\r\n            \r\n            % Convert infinity values to OSQP_INFTY\r\n            if (~isempty(u))\r\n                u = min(u, osqp.constant('OSQP_INFTY'));\r\n            end\r\n            if (~isempty(l))\r\n                l = max(l, -osqp.constant('OSQP_INFTY'));\r\n            end\r\n\r\n            %write the new problem data.  C-mex does not protect\r\n            %against unknown fields, but will handle empty values\r\n            osqp_mex('update', this.objectHandle, ...\r\n            q, l, u, Px, Px_idx, length(Px), Ax, Ax_idx, length(Ax));\r\n\r\n        end\r\n\r\n        %%\r\n        function varargout = setup(this, varargin)\r\n            % SETUP configure solver with problem data\r\n            %\r\n            %   setup(P,q,A,l,u,options)\r\n\r\n            nargin = length(varargin);\r\n\r\n            %dimension checks on user data. Mex function does not\r\n            %perform any checks on inputs, so check everything here\r\n            assert(nargin >= 5, 'incorrect number of inputs');\r\n            [P,q,A,l,u] = deal(varargin{1:5});\r\n\r\n            %\r\n            % Get problem dimensions\r\n            %\r\n\r\n            % Get number of variables n\r\n            if (isempty(P))\r\n                if (~isempty(q))\r\n                    n = length(q);\r\n                else\r\n                    if (~isempty(A))\r\n                        n = size(A, 2);\r\n                    else\r\n                        error('The problem does not have any variables');\r\n                    end\r\n                end\r\n            else\r\n                n = size(P, 1);\r\n            end\r\n\r\n            % Get number of constraints m\r\n            if (isempty(A))\r\n                m = 0;\r\n            else\r\n                m = size(A, 1);\r\n            end\r\n\r\n            %\r\n            % Create sparse matrices and full vectors if they are empty\r\n            %\r\n\r\n            if (isempty(P))\r\n                P = sparse(n, n);\r\n            else\r\n                P   = sparse(P);\r\n            end\r\n            if (isempty(q))\r\n                q = zeros(n, 1);\r\n            else\r\n                q   = full(q(:));\r\n            end\r\n\r\n            % Create proper constraints if they are not passed\r\n            if (isempty(A) && (~isempty(l) || ~isempty(u))) || ...\r\n                (~isempty(A) && (isempty(l) && isempty(u)))\r\n                error('A must be supplied together with at least one bound l or u');\r\n            end\r\n\r\n            if (~isempty(A) && isempty(l))\r\n                l = -Inf(m, 1);\r\n            end\r\n\r\n            if (~isempty(A) && isempty(u))\r\n                u = Inf(m, 1);\r\n            end\r\n\r\n            if (isempty(A))\r\n                A = sparse(m, n);\r\n                l = -Inf(m, 1);\r\n                u = Inf(m, 1);\r\n            else\r\n                l  = full(l(:));\r\n                u  = full(u(:));\r\n                A = sparse(A);\r\n            end\r\n\r\n\r\n            %\r\n            % Check vector dimensions (not checked from the C solver)\r\n            %\r\n\r\n            assert(length(q) == n, 'Incorrect dimension of q');\r\n            assert(length(l) == m, 'Incorrect dimension of l');\r\n            assert(length(u) == m, 'Incorrect dimension of u');\r\n\r\n            %\r\n            % Convert infinity values to OSQP_INFINITY\r\n            %\r\n            u = min(u, osqp.constant('OSQP_INFTY'));\r\n            l = max(l, -osqp.constant('OSQP_INFTY'));\r\n\r\n\r\n            %make a settings structure from the remainder of the arguments.\r\n            %'true' means that this is a settings initialization, so all\r\n            %parameter/values are allowed.  No extra inputs will result\r\n            %in default settings being passed back\r\n            theSettings = validateSettings(this,true,varargin{6:end});\r\n\r\n            [varargout{1:nargout}] = osqp_mex('setup', this.objectHandle, n,m,P,q,A,l,u,theSettings);\r\n\r\n        end\r\n\r\n\r\n        %%\r\n\r\n        function warm_start(this, varargin)\r\n            % WARM_START warm start primal and/or dual variables\r\n            %\r\n            %   warm_start('x', x, 'y', y)\r\n            %\r\n            %   or warm_start('x', x)\r\n            %   or warm_start('y', y)\r\n\r\n\r\n            % Get problem dimensions\r\n            [n, m]  = get_dimensions(this);\r\n\r\n            % Get data\r\n            allowedFields = {'x','y'};\r\n\r\n            if(isempty(varargin))\r\n                return;\r\n            elseif(length(varargin) == 1)\r\n                if(~isstruct(varargin{1}))\r\n                    error('Single input should be a structure with new problem data');\r\n                else\r\n                    newData = varargin{1};\r\n                end\r\n            else % param / value style assumed\r\n                newData = struct(varargin{:});\r\n            end\r\n\r\n            %check for unknown fields\r\n            newFields = fieldnames(newData);\r\n            badFieldsIdx = find(~ismember(newFields,allowedFields));\r\n            if(~isempty(badFieldsIdx))\r\n                 error('Unrecognized input field ''%s'' detected',newFields{badFieldsIdx(1)});\r\n            end\r\n\r\n            %get all of the terms.  Nonexistent fields will be passed\r\n            %as empty mxArrays\r\n            try x = double(full(newData.x(:))); catch x = []; end\r\n            try y = double(full(newData.y(:))); catch y = []; end\r\n\r\n            % Check dimensions\r\n            assert(isempty(x) || length(x) == n, 'input ''x'' is the wrong size');\r\n            assert(isempty(y) || length(y) == m, 'input ''y'' is the wrong size');\r\n\r\n\r\n            % Decide which function to call\r\n            if (~isempty(x) && isempty(y))\r\n                osqp_mex('warm_start_x', this.objectHandle, x);\r\n                return;\r\n            end\r\n\r\n            if (isempty(x) && ~isempty(y))\r\n                osqp_mex('warm_start_y', this.objectHandle, y);\r\n            end\r\n\r\n            if (~isempty(x) && ~isempty(y))\r\n                osqp_mex('warm_start', this.objectHandle, x, y);\r\n            end\r\n\r\n            if (isempty(x) && isempty(y))\r\n                error('Unrecognized fields');\r\n            end\r\n\r\n        end\r\n\r\n        %%\r\n        function varargout = solve(this, varargin)\r\n            % SOLVE solve the QP\r\n\r\n            nargoutchk(0,1);  %either return nothing (but still solve), or a single output structure\r\n            [out.x, out.y, out.prim_inf_cert, out.dual_inf_cert, out.info] = osqp_mex('solve', this.objectHandle);\r\n            if(nargout)\r\n                varargout{1} = out;\r\n            end\r\n            return;\r\n        end\r\n\r\n        %%\r\n        function codegen(this, target_dir, varargin)\r\n            % CODEGEN generate C code for the parametric problem\r\n            %\r\n            %   codegen(target_dir,options)\r\n\r\n            % Parse input arguments\r\n            p = inputParser;\r\n            defaultProject = '';\r\n            expectedProject = {'', 'Makefile', 'MinGW Makefiles', 'Unix Makefiles', 'CodeBlocks', 'Xcode'};\r\n            defaultParams = 'vectors';\r\n            expectedParams = {'vectors', 'matrices'};\r\n            defaultMexname = 'emosqp';\r\n            defaultFW = false;\r\n\r\n            addRequired(p, 'target_dir', @isstr);\r\n            addParameter(p, 'project_type', defaultProject, ...\r\n                         @(x) any(validatestring(x, expectedProject)));\r\n            addParameter(p, 'parameters', defaultParams, ...\r\n                         @(x) any(validatestring(x, expectedParams)));\r\n            addParameter(p, 'mexname', defaultMexname, @isstr);\r\n            addParameter(p, 'force_rewrite', defaultFW, @islogical);\r\n\r\n            parse(p, target_dir, varargin{:});\r\n\r\n            % Set internal variables\r\n            if strcmp(p.Results.parameters, 'vectors')\r\n                embedded = 1;\r\n            else\r\n                embedded = 2;\r\n            end\r\n            if strcmp(p.Results.project_type, 'Makefile')\r\n                if (ispc)\r\n                    project_type = 'MinGW Makefiles';   % Windows\r\n                elseif (ismac || isunix)\r\n                    project_type = 'Unix Makefiles';    % Unix\r\n                end\r\n            else\r\n                project_type = p.Results.project_type;\r\n            end\r\n\r\n            % Check whether the specified directory already exists\r\n            if exist(target_dir, 'dir')\r\n                if p.Results.force_rewrite\r\n                    rmdir(target_dir, 's');\r\n                else\r\n                    while(1)\r\n                        prompt = sprintf('Directory \"%s\" already exists. Do you want to replace it? y/n [y]: ', target_dir);\r\n                        str = input(prompt, 's');\r\n\r\n                        if any(strcmpi(str, {'','y'}))\r\n                            rmdir(target_dir, 's');\r\n                            break;\r\n                        elseif strcmpi(str, 'n')\r\n                            return;\r\n                        end\r\n                    end\r\n                end\r\n            end\r\n\r\n            % Import OSQP path\r\n            [osqp_path,~,~] = fileparts(which('osqp.m'));\r\n\r\n            % Add codegen directory to path\r\n            addpath(fullfile(osqp_path, 'codegen'));\r\n\r\n            % Path of osqp module\r\n            cg_dir = fullfile(osqp_path, 'codegen');\r\n            files_to_generate_path = fullfile(cg_dir, 'files_to_generate');\r\n\r\n            % Get workspace structure\r\n            work = osqp_mex('get_workspace', this.objectHandle);\r\n\r\n            % Make target directory\r\n            fprintf('Creating target directories...\\t\\t\\t\\t\\t');\r\n            target_configure_dir = fullfile(target_dir, 'configure');\r\n            target_include_dir = fullfile(target_dir, 'include');\r\n            target_src_dir = fullfile(target_dir, 'src');\r\n\r\n            if ~exist(target_dir, 'dir')\r\n                mkdir(target_dir);\r\n            end\r\n            if ~exist(target_configure_dir, 'dir')\r\n                mkdir(target_configure_dir);\r\n            end\r\n            if ~exist(target_include_dir, 'dir')\r\n                mkdir(target_include_dir);\r\n            end\r\n            if ~exist(target_src_dir, 'dir')\r\n                mkdir(fullfile(target_src_dir, 'osqp'));\r\n            end\r\n            fprintf('[done]\\n');\r\n\r\n            % Copy source files to target directory\r\n            fprintf('Copying OSQP source files...\\t\\t\\t\\t\\t');\r\n            cdir   = fullfile(cg_dir, 'sources', 'src');\r\n            cfiles = dir(fullfile(cdir, '*.c'));\r\n            for i = 1 : length(cfiles)\r\n                if embedded == 1\r\n                    % Do not copy kkt.c if embedded is 1\r\n                    if ~strcmp(cfiles(i).name, fullfile(cdir, 'kkt.c'))\r\n                        copyfile(fullfile(cdir, cfiles(i).name), ...\r\n                            fullfile(target_src_dir, 'osqp', cfiles(i).name));    \r\n                    end\r\n                else\r\n                    copyfile(fullfile(cdir, cfiles(i).name), ...\r\n                        fullfile(target_src_dir, 'osqp', cfiles(i).name));\r\n                end\r\n            end\r\n            configure_dir = fullfile(cg_dir, 'sources', 'configure');\r\n            configure_files = dir(fullfile(configure_dir, '*.h.in'));\r\n            for i = 1 : length(configure_files)\r\n                copyfile(fullfile(configure_dir, configure_files(i).name), ...\r\n                    fullfile(target_configure_dir, configure_files(i).name));\r\n            end\r\n            hdir   = fullfile(cg_dir, 'sources', 'include');\r\n            hfiles = dir(fullfile(hdir, '*.h'));\r\n            for i = 1 : length(hfiles)\r\n                copyfile(fullfile(hdir, hfiles(i).name), ...\r\n                    fullfile(target_include_dir, hfiles(i).name));\r\n            end\r\n            fprintf('[done]\\n');\r\n\r\n            % Copy example.c\r\n            copyfile(fullfile(files_to_generate_path, 'example.c'), target_src_dir);\r\n\r\n            % Render CMakeLists.txt\r\n            fidi = fopen(fullfile(files_to_generate_path, 'CMakeLists.txt'),'r');\r\n            fido = fopen(fullfile(target_dir, 'CMakeLists.txt'),'w');\r\n            while ~feof(fidi)\r\n                l = fgetl(fidi);   % read line\r\n                % Replace EMBEDDED_FLAG in CMakeLists.txt by a numerical value\r\n                newl = strrep(l, 'EMBEDDED_FLAG', num2str(embedded));\r\n                fprintf(fido, '%s\\n', newl);\r\n            end\r\n            fclose(fidi);\r\n            fclose(fido);\r\n\r\n            % Render workspace.h\r\n            work_hfile = fullfile(target_include_dir, 'workspace.h');\r\n            fprintf('Generating workspace.h...\\t\\t\\t\\t\\t\\t');\r\n            render_workspace(work, work_hfile, embedded);\r\n            fprintf('[done]\\n');\r\n\r\n            % Create project\r\n            if ~isempty(project_type)\r\n                fprintf('Creating project...\\t\\t\\t\\t\\t\\t\\t\\t');\r\n                orig_dir = pwd;\r\n                cd(target_dir);\r\n                mkdir('build')\r\n                cd('build');\r\n                cmd = sprintf('cmake -G \"%s\" ..', project_type);\r\n                [status, output] = system(cmd);\r\n                if(status)\r\n                    fprintf('\\n');\r\n                    fprintf(output);\r\n                    error('Error configuring CMake environment');\r\n                else\r\n                    fprintf('[done]\\n');\r\n                end\r\n                cd(orig_dir);\r\n            end\r\n\r\n            % Make mex interface to the generated code\r\n            mex_cfile  = fullfile(files_to_generate_path, 'emosqp_mex.c');\r\n            make_emosqp(target_dir, mex_cfile, embedded);\r\n\r\n            % Rename the mex file\r\n            old_mexfile = ['emosqp_mex.', mexext];\r\n            new_mexfile = [p.Results.mexname, '.', mexext];\r\n            movefile(old_mexfile, new_mexfile);\r\n\r\n        end\r\n\r\n    end\r\nend\r\n\r\n\r\n\r\nfunction currentSettings = validateSettings(this,isInitialization,varargin)\r\n\r\n%don't allow these fields to be changed\r\nunmodifiableFields = {'scaling', 'linsys_solver'};\r\n\r\n%get the current settings\r\nif(isInitialization)\r\n    currentSettings = osqp_mex('default_settings', this.objectHandle);\r\nelse\r\n    currentSettings = osqp_mex('current_settings', this.objectHandle);\r\nend\r\n\r\n%no settings passed -> return defaults\r\nif(isempty(varargin))\r\n    return;\r\nend\r\n\r\n%check for structure style input\r\nif(isstruct(varargin{1}))\r\n    newSettings = varargin{1};\r\n    assert(length(varargin) == 1, 'too many input arguments');\r\nelse\r\n    newSettings = struct(varargin{:});\r\nend\r\n\r\n%get the osqp settings fields\r\ncurrentFields = fieldnames(currentSettings);\r\n\r\n%get the requested fields in the update\r\nnewFields = fieldnames(newSettings);\r\n\r\n%check for unknown parameters\r\nbadFieldsIdx = find(~ismember(newFields,currentFields));\r\nif(~isempty(badFieldsIdx))\r\n    error('Unrecognized solver setting ''%s'' detected',newFields{badFieldsIdx(1)});\r\nend\r\n\r\n%convert linsys_solver string to integer\r\nif ismember('linsys_solver',newFields)\r\n   if ~ischar(newSettings.linsys_solver)\r\n       error('Setting linsys_solver is required to be a string.');\r\n   end\r\n   % Convert linsys_solver to number\r\n    newSettings.linsys_solver = string_to_linsys_solver(newSettings.linsys_solver);\r\nend\r\n\r\n\r\n%check for disallowed fields if this in not an initialization call\r\nif(~isInitialization)\r\n    badFieldsIdx = find(ismember(newFields,unmodifiableFields));\r\n    for i = badFieldsIdx(:)'\r\n        if(~isequal(newSettings.(newFields{i}),currentSettings.(newFields{i})))\r\n            error('Solver setting ''%s'' can only be changed at solver initialization.', newFields{i});\r\n        end\r\n    end\r\nend\r\n\r\n\r\n%check that everything is a nonnegative scalar (this check is already\r\n%performed in C)\r\n% for i = 1:length(newFields)\r\n%     val = double(newSettings.(newFields{i}));\r\n%     assert(isscalar(val) & isnumeric(val) & val >= 0, ...\r\n%         'Solver setting ''%s'' not specified as nonnegative scalar', newFields{i});\r\n% end\r\n\r\n%everything checks out - merge the newSettings into the current ones\r\nfor i = 1:length(newFields)\r\n    currentSettings.(newFields{i}) = double(newSettings.(newFields{i}));\r\nend\r\n\r\n\r\nend\r\n\r\nfunction [linsys_solver_string] = linsys_solver_to_string(linsys_solver)\r\n% Convert linear systme solver integer to stringh\r\nswitch linsys_solver\r\n    case osqp.constant('QDLDL_SOLVER')\r\n        linsys_solver_string = 'qdldl';\r\n    case osqp.constant('MKL_PARDISO_SOLVER')\r\n        linsys_solver_string = 'mkl pardiso';\r\n    otherwise\r\n        error('Unrecognized linear system solver.');\r\nend\r\nend\r\n\r\n\r\n\r\nfunction [linsys_solver] = string_to_linsys_solver(linsys_solver_string)\r\n   linsys_solver_string = lower(linsys_solver_string);\r\n   switch linsys_solver_string\r\n       case 'qdldl'\r\n           linsys_solver = osqp.constant('QDLDL_SOLVER');\r\n       case 'mkl pardiso'\r\n           linsys_solver = osqp.constant('MKL_PARDISO_SOLVER');\r\n       % Default solver: QDLDL\r\n       case ''\r\n           linsys_solver = osqp.constant('QDLDL_SOLVER');\r\n       otherwise\r\n           warning('Linear system solver not recognized. Using default solver QDLDL.')\r\n           linsys_solver = osqp.constant('QDLDL_SOLVER');\r\n   end\r\nend\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_ErrorModel_PathTracking/qpOASES_options.m",
    "content": "%qpOASES -- An Implementation of the Online Active Set Strategy.\n%Copyright (C) 2007-2015 by Hans Joachim Ferreau, Andreas Potschka,\n%Christian Kirches et al. All rights reserved.\n%\n%qpOASES is distributed under the terms of the\n%GNU Lesser General Public License 2.1 in the hope that it will be\n%useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n%of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n%See the GNU Lesser General Public License for more details.\n%\n%---------------------------------------------------------------------------------\n%\n%Returns a struct containing values for all options to be used within qpOASES.\n%\n%Call\n%    options = qpOASES_options( 'default' );\n%    options = qpOASES_options( 'reliable' );\n%    options = qpOASES_options( 'MPC' );\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively.\n%\n%Call\n%    options = qpOASES_options( 'option1',value1,'option2',value2,... )\n%to obtain a set of default options but with 'option1' set to value1 etc.\n%\n%Call\n%    options = qpOASES_options( oldOptions,'option1',value1,... )\n%to obtain a copy of the options struct oldOptions but with 'option1' set\n%to value1 etc.\n%\n%Call\n%    options = qpOASES_options( 'default', 'option1',value1,... )\n%    options = qpOASES_options( 'reliable','option1',value1,... )\n%    options = qpOASES_options( 'MPC',     'option1',value1,... )\n%to obtain a set of default options or a pre-defined set of options tuned\n%for reliable or fast QP solution, respectively, but with 'option1' set to \n%value1 etc.\n%\n%\n%qpOASES features the following options:\n%  maxIter                    -  Maximum number of iterations (if set\n%                                to -1, a value is chosen heuristically)\n%  maxCpuTime                 -  Maximum CPU time in seconds (if set\n%                                to -1, only iteration limit is used)\n%  printLevel                 -  0: no printed output,\n%                                1: only error messages are printed,\n%                                2: iterations and error messages are printed,\n%                                3: all available messages are printed.\n%\n%  enableRamping              -  Enables (1) or disables (0) ramping.\n%  enableFarBounds            -  Enables (1) or disables (0) the use of \n%                                far bounds.\n%  enableFlippingBounds       -  Enables (1) or disables (0) the use of \n%                                flipping bounds.\n%  enableRegularisation       -  Enables (1) or disables (0) automatic \n%                                Hessian regularisation.\n%  enableFullLITests          -  Enables (1) or disables (0) condition-hardened \n%                                (but more expensive) LI test.\n%  enableNZCTests             -  Enables (1) or disables (0) nonzero curvature \n%                                tests.\n%  enableDriftCorrection      -  Specifies the frequency of drift corrections:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableCholeskyRefactorisation - Specifies the frequency of a full re-\n%                                factorisation of projected Hessian matrix:\n%                                0: turns them off, \n%                                1: uses them at each iteration etc.\n%  enableEqualities           -  Specifies whether equalities should be treated \n%                                as always active (1) or not (0)\n%\n%  terminationTolerance       -  Relative termination tolerance to stop homotopy.\n%  boundTolerance             -  If upper and lower bounds differ less than this\n%                                tolerance, they are regarded equal, i.e. as \n%                                equality constraint.\n%  boundRelaxation            -  Initial relaxation of bounds to start homotopy \n%                                and initial value for far bounds.\n%  epsNum                     -  Numerator tolerance for ratio tests.\n%  epsDen                     -  Denominator tolerance for ratio tests.\n%  maxPrimalJump              -  Maximum allowed jump in primal variables in \n%                                nonzero curvature tests.\n%  maxDualJump                -  Maximum allowed jump in dual variables in \n%                                linear independence tests.\n%\n%  initialRamping             -  Start value for ramping strategy.\n%  finalRamping               -  Final value for ramping strategy.\n%  initialFarBounds           -  Initial size for far bounds.\n%  growFarBounds              -  Factor to grow far bounds.\n%  initialStatusBounds        -  Initial status of bounds at first iteration:\n%                                 0: all bounds inactive,\n%                                -1: all bounds active at their lower bound,\n%                                +1: all bounds active at their upper bound.\n%  epsFlipping                -  Tolerance of squared Cholesky diagonal factor \n%                                which triggers flipping bound.\n%  numRegularisationSteps     -  Maximum number of successive regularisation steps.\n%  epsRegularisation          -  Scaling factor of identity matrix used for \n%                                Hessian regularisation.\n%  numRefinementSteps         -  Maximum number of iterative refinement steps.\n%  epsIterRef                 -  Early termination tolerance for iterative \n%                                refinement.\n%  epsLITests                 -  Tolerance for linear independence tests.\n%  epsNZCTests                -  Tolerance for nonzero curvature tests.\n%\n%\n%See also QPOASES, QPOASES_SEQUENCE, QPOASES_AUXINPUT\n%\n%\n%For additional information see the qpOASES User's Manual or\n%visit http://www.qpOASES.org/.\n%\n%Please send remarks and questions to support@qpOASES.org!\nfunction [ options ] = qpOASES_options( varargin )\n\n\tfirstIsStructOrScheme = 0;\n\n\tif ( nargin == 0 ) \n\t\toptions = qpOASES_default_options();\n\telse\n\t\tif ( isstruct( varargin{1} ) )\n\t\t\tif ( mod( nargin,2 ) ~= 1 )\n\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\tend\n\t\t\toptions = varargin{1};\n\t\t\tfirstIsStructOrScheme = 1;\n\t\telse\n\t\t\tif ( ischar( varargin{1} ) )\n\t\t\t\tif ( mod( nargin,2 ) == 0 )\n\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\telse\n\t\t\t\t\tif ( ( nargin > 1 ) && ( ischar( varargin{nargin} ) ) )\n\t\t\t\t\t\terror('ERROR (qpOASES_options): Options must be specified in pairs!');\n\t\t\t\t\tend\n\n\t\t\t\t\tswitch ( varargin{1} )\n\t\t\t\t\t\tcase 'default'\n\t\t\t\t\t\t\toptions = qpOASES_default_options();\n\t\t\t\t\t\tcase 'reliable'\n\t\t\t\t\t\t\toptions = qpOASES_reliable_options();\n\t\t\t\t\t\tcase {'MPC','mpc','fast'}\n\t\t\t\t\t\t\toptions = qpOASES_MPC_options();\n\t\t\t\t\t\totherwise\n\t\t\t\t\t\t\terror( ['ERROR (qpOASES_options): Only the following option schemes are defined: ''default'', ''reliable'', ''MPC''!'] );\n\t\t\t\t\t\t\t\n\t\t\t\t\tend\n\t\t\t\t\tfirstIsStructOrScheme = 1;\n\t\t\t\tend\n\t\t\telse\n\t\t\t\terror('ERROR (qpOASES_options): First argument needs to be a string or an options struct!');\n\t\t\tend\n\t\tend\n\tend\n\n\t% set options to user-defined values  \n\tfor i=(1+firstIsStructOrScheme):2:nargin\n\n\t\targName  = varargin{i};\n\t\targValue = varargin{i+1};\n\n\t\tif ( ( isempty( argName ) ) || ( ~ischar( argName ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a non-empty string!',i );\n        end\n\t\t\t\n\t\tif ( ( ischar(argValue) ) || ( ~isscalar( argValue ) ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d has to be a scalar constant!',i+1 );\n        end\n\n\t\tif ( ~isfield( options,argName ) )\n\t\t\terror('ERROR (qpOASES_options): Argmument no. %d is an invalid option!',i );\n\t\tend\n\n\t\teval( ['options.',argName,' = ',num2str(argValue),';'] );\n\n\tend\n\nend\n\n\nfunction [ options ] = qpOASES_default_options( )\n\n\t% setup options struct with default values\n\toptions = struct(\t'maxIter',                       -1, ...\n\t\t\t\t\t\t'maxCpuTime',                    -1, ...\n\t\t\t\t\t\t'printLevel',                     1, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'enableRamping',                  1, ...\n\t\t\t\t\t\t'enableFarBounds',                1, ...\n\t\t\t\t\t\t'enableFlippingBounds',           1, ...\n\t\t\t\t\t\t'enableRegularisation',           0, ...\n\t\t\t\t\t\t'enableFullLITests',              0, ...\n\t\t\t\t\t\t'enableNZCTests',                 1, ...\n\t\t\t\t\t\t'enableDriftCorrection',          1, ...\n\t\t\t\t\t\t'enableCholeskyRefactorisation',  0, ...\n\t\t\t\t\t\t'enableEqualities',               0, ...\n\t\t\t\t\t\t...\n\t\t\t\t\t\t'terminationTolerance',           5.0e6*eps, ...\n\t\t\t\t\t\t'boundTolerance',                 1.0e6*eps, ...\n\t\t\t\t\t\t'boundRelaxation',                1.0e4, ...\n\t\t\t\t\t\t'epsNum',                        -1.0e3*eps, ...\n\t\t\t\t\t\t'epsDen',                         1.0e3*eps, ...\n\t\t\t\t\t\t'maxPrimalJump',                  1.0e8, ...\n\t\t\t\t\t\t'maxDualJump',                    1.0e8, ...\n\t\t\t\t\t\t...\n    \t\t\t\t\t'initialRamping',                 0.5, ...\n\t\t\t\t\t\t'finalRamping',                   1.0, ...\n\t\t\t\t\t\t'initialFarBounds',               1.0e6, ...\n\t\t\t\t\t\t'growFarBounds',                  1.0e3, ...\n\t\t\t\t\t\t'initialStatusBounds',            -1, ...\n\t\t\t\t\t\t'epsFlipping',                    1.0e3*eps, ...\n\t\t\t\t\t\t'numRegularisationSteps',         0, ...\n\t\t\t\t\t\t'epsRegularisation',              1.0e3*eps, ...\n\t\t\t\t\t\t'numRefinementSteps',             1, ...\n\t\t\t\t\t\t'epsIterRef',                     1.0e2*eps, ...\n\t\t\t\t\t\t'epsLITests',                     1.0e5*eps, ...\n\t\t\t\t\t\t'epsNZCTests',                    3.1e3*eps );\n\nend\n\n\n\nfunction [ options ] = qpOASES_reliable_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableFullLITests             =  1;\n\toptions.enableCholeskyRefactorisation =  1;\n\n\toptions.numRefinementSteps            =  2;\n\nend\n\n\nfunction [ options ] = qpOASES_MPC_options( )\n\n\t% setup options struct with values for most reliable QP solution\n\toptions = qpOASES_default_options( );\n\n\toptions.enableRamping                 =  0;\n\toptions.enableFarBounds               =  1;\n\toptions.enableFlippingBounds          =  0;\n\toptions.enableRegularisation          =  1;\n\toptions.enableNZCTests                =  0;\n\toptions.enableDriftCorrection         =  0;\n\toptions.enableEqualities              =  1;\n\n\toptions.terminationTolerance          =  1.0e9*eps;\n\t\n\toptions.initialStatusBounds           =  0;\n\toptions.numRegularisationSteps        =  1;\n\toptions.numRefinementSteps            =  0;\n\nend\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_GivenPathTracking/Func_Alpha_Pos.m",
    "content": "function K=Func_Alpha_Pos(Xb,Yb,Xn,Yn)\r\nAngleY=Yn-Yb;\r\nAngleX=Xn-Xb;\r\n%***Angle*******%\r\nif Xb==Xn\r\n    if Yn>Yb\r\n        K=pi/2;\r\n    else\r\n        K=3*pi/2;\r\n    end\r\nelse\r\n    if Yb==Yn\r\n        if Xn>Xb\r\n            K=0;\r\n        else\r\n            K=pi;\r\n        end\r\n    else\r\n        K=atan(AngleY/AngleX);\r\n    end    \r\nend\r\n%****K,ʹ֮0~360֮*****%\r\n   if (AngleY>0&&AngleX>0)%һ\r\n        K=K;\r\n    elseif (AngleY>0&&AngleX<0)||(AngleY<0&&AngleX<0)%ڶ\r\n        K=K+pi;\r\n    else if (AngleY<0&&AngleX>0)%\r\n            K=K+2*pi;  \r\n        else\r\n            K=K;\r\n        end\r\n    end\r\nend"
  },
  {
    "path": "Chapter-4/chap4_MPC_GivenPathTracking/Func_Theta_Pos.m",
    "content": "function Theta=Func_Theta_Pos(Alpha)\r\n\r\nif Alpha >= 3*pi/2\r\n    Theta = Alpha-3*pi/2;\r\nelse\r\n    Theta = Alpha+pi/2;\r\nend\r\n\r\nend"
  },
  {
    "path": "Chapter-4/chap4_MPC_GivenPathTracking/MPC_MPC_GivenPathTracking.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"MPC_MPC_GivenPathTracking\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.265\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"RollModelMPCCurvePathTracking\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2382.0, 92.0, 915.0, 681.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[865.0, 504.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[-1.1925252257034913, 167.59999999999997]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sun Sep 01 22:50:32 2019\"\r\n  RTWModifiedTimeStamp\t  489279028\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:265>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"MPC_MPC_GivenPathTracking\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"MPC_MPC_GivenPathTracking\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"40\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      X0\t\t      \"0\"\r\n      InheritSampleTime\t      off\r\n      LinearizeMemory\t      off\r\n      LinearizeAsDelay\t      off\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"MPC_MPC_GivenPathTracking\"\r\n    Location\t\t    [2382, 92, 3297, 773]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"143\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [330, 179, 430, 241]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_MPC_GivenPathTrackingCtrl.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"135\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [170, 361, 180, 439]\r\n      ZOrder\t\t      30\r\n      BlockMirror\t      on\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[2 7]\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Memory\r\n      Name\t\t      \"Memory\"\r\n      SID\t\t      \"143\"\r\n      Position\t\t      [185, 195, 215, 225]\r\n      ZOrder\t\t      34\r\n      X0\t\t      \"1\"\r\n      InheritSampleTime\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [255, 366, 535, 434]\r\n      ZOrder\t\t      12\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_MPC_GivenPathTracking\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"136\"\r\n      Position\t\t      [95, 405, 130, 435]\r\n      ZOrder\t\t      31\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [230, 295, 290, 325]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      116\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [151, 0; 0, 190]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      130\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-41, 0]\r\n      Branch {\r\n\tZOrder\t\t\t177\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t176\r\n\tPoints\t\t\t[0, -90]\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      178\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      184\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-52, 0; 0, -170]\r\n      DstBlock\t\t      \"Memory\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      187\r\n      SrcBlock\t\t      \"Memory\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_GivenPathTracking/Main_MPC_GivenPathTracking.m",
    "content": "function [sys,x0,str,ts] = Main_MPC_GivenPathTracking(t,x,u,flag)\r\n%***************************************************************%\r\n%   ڳ˶ѧģʵָο켣ĸ\r\n%   ΪٶȺǰƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n% end %  end sfuntmpl\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%***************************************************************%\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n%***************************************************************%\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0;\r\nsizes.NumDiscStates  = 3;\r\nsizes.NumOutputs     = 9;\r\nsizes.NumInputs      = 10;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % sample time: [period, offset]\r\n\r\nglobal MPCParameters; \r\n    MPCParameters.Ts      = 0.05; %Set the sample time\r\n    MPCParameters.Np      = 30;% predictive horizon\r\n    MPCParameters.Nc      = 30;% control horizon\r\n    MPCParameters.Nx      = 3; %number of state variables\r\n    MPCParameters.Nu      = 2; %number of control inputs\r\n    MPCParameters.Ny      = 3; %number of output variables  \r\n    MPCParameters.Qx      = 10; % cost weight factor \r\n    MPCParameters.Qy      = 10; % cost weight factor \r\n    MPCParameters.Qphi    = 10; % cost weight factor \r\n    MPCParameters.R_dv    = 5; % cost weight factor \r\n    MPCParameters.R_du    = 5; % cost weight factor \r\n    MPCParameters.qp_solver = 0; %0: default, quadprog; 1:qpOASES; 2:CVXGEN\r\n    MPCParameters.refspeedT = 0; %0: default, straight-lane profile; \r\n                                 %1:circle path profile\r\n    MPCParameters.umin      = [-0.2; -0.436;];  % \r\n    MPCParameters.umax      = [0.2;  0.436];  % the max \r\n    MPCParameters.dumin     = [-0.05; -0.0082;]; % \r\n    MPCParameters.dumax     = [0.05; 0.0082]; % \r\n\r\nglobal WarmStart;\r\n    WarmStart = zeros(MPCParameters.Nu * MPCParameters.Nc,1);\r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % Ignore the first few inputs from CarSim\r\n% Initialize the discrete states.\r\n\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n%  Ŀǰûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;\r\n% end     %End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    \r\nglobal InitialGapflag;\r\nglobal MPCParameters;\r\nglobal WarmStart;\r\n\r\nTs = MPCParameters.Ts;\r\nNp = MPCParameters.Np;\r\nNc = MPCParameters.Nc;\r\nNx = MPCParameters.Nx;\r\nNu = MPCParameters.Nu;\r\n\r\n% lfr = 2.78; % D-class Sedan\r\nlfr = 2.6; % D-class SUV\r\n\r\nVel_des   =  0.0;\r\nSteer_des =  0.0;\r\n            \r\nt_Start = tic; % ʼʱ \r\nif InitialGapflag < 2 %  get rid of the first two inputs\r\n    InitialGapflag = InitialGapflag + 1;%\r\nelse\r\n    %***********Step (1). Update vehicle states *************************% \r\n    % ȡCarSim뵽Simulink\r\n    x_L2 = u(1); %x\r\n    x_R2 = u(2); %Һx\r\n    y_L2 = u(3); %y\r\n    y_R2 = u(4); %Һy   \r\n    Yaw_angle  = u(5)*pi/180;%Unitdeg-->rad\r\n    Steer_SW = u(6); %̽Ƕ\r\n    Steer_L1 = u(7); %ǰƫ\r\n    Steer_R1 = u(8); %ǰƫ\r\n    Vx_L2 = u(9);  %ٶȣUnit:km/h\r\n    Vx_R2 = u(10); %ҺٶȣUnit:km/h\r\n    \r\n    VehPos.X = 0.5*(x_L2 + x_R2);%X꣬Unit:m\r\n    VehPos.Y = 0.5*(y_L2 + y_R2);%Y꣬Unit:m\r\n    VehPos.Yaw_angle = Yaw_angle;%ǣUnit:rad\r\n    \r\n    Vx_km_h = 0.5*(Vx_L2 + Vx_R2);%Ĵٶ,Unitkm/h\r\n    Steer_deg = 0.5*(Steer_L1 + Steer_R1);%ЧǰƫǣUnitdeg\r\n    Vx_m_s  = Vx_km_h/3.6;%%Ĵٶ in (m/s),Unitm/s    \r\n    Steer_rad = Steer_deg*pi/180;%Чǰƫin (rad)Unitdegs-->rad;\r\n    \r\n    %********Step(2): Generate reference speed profile *******************%\r\n    switch MPCParameters.refspeedT,\r\n        case 0 % default, straight lane profile\r\n            %----趨ֱο·յ----------------------%\r\n            V_ref = 5; %ο٣ unit:m/s\r\n            StartPoint = [-1, 5]; %xy\r\n            EndPoint = [10, 5]; %xy\r\n            PrjPoint = func_GetProjectPoint_StraightLane(VehPos, StartPoint, EndPoint);\r\n        case 1 % circle lane profile\r\n            %----Circleʽ Ĳο·--------------%\r\n            V_ref = 5; %ο٣ unit:m/s\r\n            Circle_center = [0, 25]; %Բĵĺ, unit:m\r\n            Circle_radius = 5; %ο٣unit:m/s\r\n            PrjPoint = func_GetProjectPoint_Circle(VehPos, lfr, Circle_center, Circle_radius);\r\n        otherwise % Unexpected flags %\r\n            error(['unexpected path-profile:',num2str(MPCParameters.refspeedT)]); % Error handling\r\n    end %  end of switch \r\n    \r\n    %****Step(3): update lateral vehilce model***%\r\n    kesi=zeros(Nx + Nu, 1);\r\n    kesi(1)=VehPos.X - PrjPoint.X;%\r\n    kesi(2)=VehPos.Y- PrjPoint.Y;%\r\n    kesi(3)=VehPos.Yaw_angle - PrjPoint.Yaw_angle; %\r\n    kesi(4)=Vx_m_s;\r\n    kesi(5)=Steer_rad;\r\n    Um = [Vx_m_s; Steer_rad];\r\n   \r\n    cos2 = cos(PrjPoint.steer_rad)^2;\r\n    Ad = [ 1    0   -V_ref*sin(PrjPoint.Yaw_angle)*Ts;\r\n           0    1   V_ref*cos(PrjPoint.Yaw_angle)*Ts;\r\n           0    0   1;];\r\n    Bd = [ cos(PrjPoint.Yaw_angle)*Ts           0;\r\n           sin(PrjPoint.Yaw_angle)*Ts           0;\r\n           tan(PrjPoint.steer_rad)*Ts/lfr       V_ref*Ts/(lfr*cos2);];\r\n    \r\n    A_aug_cell = cell(2,2);\r\n    A_aug_cell{1,1} = Ad;\r\n    A_aug_cell{1,2} = Bd;\r\n    A_aug_cell{2,1} = zeros(Nu, Nx);\r\n    A_aug_cell{2,2} = eye(Nu);\r\n    A = cell2mat(A_aug_cell);\r\n \r\n    B_aug_cell = cell(2,1);\r\n    B_aug_cell{1,1} = Bd;\r\n    B_aug_cell{2,1} = eye(Nu);\r\n    B = cell2mat(B_aug_cell);\r\n    \r\n    C=[ 1 0 0 0 0;\r\n        0 1 0 0 0;\r\n        0 0 1 0 0];\r\n    \r\n    %****Step(4):  MPC formulation;********************%\r\n    %Update Theta and PHI for future states prediction\r\n    PHI_cell=cell(Np,1);\r\n    THETA_cell=cell(Np,Nc);\r\n    for j=1:1:Np\r\n        PHI_cell{j,1}=C*A^j; %Ny * N_aug=Nx+Nu\r\n        for k=1:1:Nc\r\n            if k <= j\r\n                THETA_cell{j,k}=C*A^(j-k)*B; %Ny * Nu\r\n            else \r\n                THETA_cell{j,k}=zeros(Nx,Nu);%\r\n            end\r\n        end\r\n    end\r\n    PHI=cell2mat(PHI_cell);%size(PHI)=[Nx*Np, Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Nx*Np, Nu*Nc)]    \r\n    \r\n    %Update H and f for cost function J = 0.5U'HU +f'U\r\n    Qq = diag([MPCParameters.Qx, MPCParameters.Qy, MPCParameters.Qphi]);\r\n    Rr = diag([MPCParameters.R_dv, MPCParameters.R_du]);\r\n    Q = kron(eye(Np), Qq); % Nx*Np,Nx*Np\r\n    R = kron(eye(Nc), Rr); % Nu*Nc, Nu*Nc\r\n    \r\n    H = THETA'*Q*THETA + R;\r\n\r\n    E_error = PHI*kesi;\r\n    g       = THETA' * Q * E_error;\r\n    \r\n    %Update bounds and constraints \r\n    [A, b, Aeq, beq, lb, ub] = func_Constraints_du_quadprog(MPCParameters, Um);\r\n        \r\n    %****Step(5):  Call qp-solver********************%\r\n    options = optimset('Display','off', ...\r\n                    'TolFun', 1e-8, ...\r\n                    'MaxIter', 2000, ...\r\n                    'Algorithm', 'active-set', ...\r\n                    'FinDiffType', 'forward', ...\r\n                    'RelLineSrchBnd', [], ...\r\n                    'RelLineSrchBndDuration', 1, ...\r\n                    'TolConSQP', 1e-8); \r\n    warning off all  % close the warnings during computation     \r\n\r\n    U0 = WarmStart;           \r\n    [U, FVAL, EXITFLAG] = quadprog(H, g, A, b, Aeq, beq, lb, ub, U0, options); %\r\n    WarmStart = shiftHorizon(U, Nu);     % Prepare restart, nominal close loop \r\n    if (1 ~= EXITFLAG) %if optimization NOT succeeded.\r\n        U(1) = 0.0;\r\n        U(2) = 0.0;\r\n        fprintf('MPC solver not converged!\\n');                  \r\n    end\r\n    Vel_des   =  U(1) +  kesi(4) + V_ref;\r\n    Steer_des = U(2) +  kesi(5) + PrjPoint.steer_rad;\r\n    Steer_des =  18.0 * (Steer_des*180/pi);\r\n\r\n    \r\nend % End of if Initialflag < 1 %\r\n\r\nt_Elapsed = toc( t_Start ); %computation time \r\n\r\nsys= [Vel_des; Steer_des; t_Elapsed; Car_X; Car_Y; Yaw; Vx_m_s; Steer_rad; Steer_SW];\r\n% end % End of mdlOutputs\r\n\r\n%==============================================================\r\n% sub functions\r\n%============================================================== \r\nfunction [PPx,PPy,slope]=func_GetProjectPoint(Xb,Yb,Xn,Yn,Xc,Yc)\r\n    DifX=Xn-Xb;\r\n    DifY=Yn-Yb;\r\n    if DifX == 0\r\n        x=Xn;\r\n        y=Yc;\r\n    else if DifY == 0\r\n            x=Xc;\r\n            y=Yn;\r\n        else  %k!=0\r\n            Kindex = DifY/DifX;\r\n            bindex = Yb-Kindex*Xb;\r\n            K = -1/Kindex;\r\n            b = Yc-K*Xc;\r\n            x = (bindex-b)/(K-Kindex);\r\n            y = K*x+b;\r\n        end     \r\n    end\r\n    de=atan2(DifY,DifX);\r\n    if de<0\r\n        de=de+2*pi;\r\n    end   \r\n    PPx=x;\r\n    PPy=y;\r\n    slope = de;\r\n% end % End of func\r\n\r\nfunction PrjPoint = func_GetProjectPoint_StraightLane(VehPos, StartPoint, EndPoint)\r\n\r\n   [PrjPoint.X,PrjPoint.Y,PrjPoint.Yaw_angle] = func_GetProjectPoint(StartPoint(1), StartPoint(2), ...\r\n                                          EndPoint(1), EndPoint(2), ...\r\n                                          VehPos.X, VehPos.Y);\r\n   PrjPoint.steer_rad = 0.0;\r\n% end % End of func\r\n\r\nfunction PrjPoint = func_GetProjectPoint_Circle(VehPos, lfr, Circle_center, Circle_radius)\r\n    CEN_x = Circle_center(1);\r\n    CEN_y = Circle_center(2);\r\n\r\n    Alpha_init = Func_Alpha_Pos(CEN_x,CEN_y,VehPos.X, VehPos.Y);%ȸݳλúԲȷalpha\r\n    PrjPoint.X = Circle_radius*cos(Alpha_init) + CEN_x;%x\r\n    PrjPoint.X = Circle_radius*sin(Alpha_init) + CEN_y;%y\r\n    PrjPoint.Yaw_angle = Func_Theta_Pos(Alpha_init);%theta  \r\n    \r\n    PrjPoint.steer_rad = atan(lfr/Circle_radius);\r\n%end %ENd of func\r\n    \r\nfunction U0 = shiftHorizon(U, Nu) %shift control horizon\r\n    U0 = [U(Nu+1:size(U,1)); zeros(Nu,1)]; % shiftHorizonPrepare restart\r\n    \r\nfunction  [A, b, Aeq, beq, lb, ub] = func_Constraints_du_quadprog(MPCParameters, um)\r\n%************************************************************************%\r\n% generate the constraints of the vehicle\r\n%  \r\n%************************************************************************%\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;\r\n    Nu   = MPCParameters.Nu;\r\n    dumin = MPCParameters.dumin;\r\n    dumax = MPCParameters.dumax;\r\n    umin = MPCParameters.umin;  \r\n    umax = MPCParameters.umax;  \r\n    Umin = kron(ones(Nc,1),umin);\r\n    Umax = kron(ones(Nc,1),umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) A*x<=b----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end\r\n    A_I=kron(A_t,eye(Nu));%ӦfalconeԼľA,ڿ˻\r\n    \r\n    A_cell=cell(2,1);\r\n    A_cell{1,1} = A_I; %\r\n    A_cell{2,1} = -A_I;\r\n    A=cell2mat(A_cell);  %\r\n    \r\n    b_cell=cell(2, 1);\r\n    b_cell{1,1} = Umax - Ut; %\r\n    b_cell{2,1} = -Umin + Ut;\r\n    b=cell2mat(b_cell);  % \r\n\r\n%----(2) Aeq*x=beq----------%\r\n    Aeq = [];\r\n    beq = [];\r\n\r\n%----(3) lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1), dumin);\r\n    ub=kron(ones(Nc,1), dumax);\r\n% end %EoF\r\n\r\nfunction [A_I, lb, ub, lbA, ubA] = func_Constraints_du_qpOASES(MPCParameters, um)\r\n    Np   = MPCParameters.Np;\r\n    Nc   = Np;\r\n    dumin = MPCParameters.dumin;\r\n    dumax = MPCParameters.dumax;\r\n    umin = MPCParameters.umin;\r\n    umax = MPCParameters.umax;  \r\n    Umin = kron(ones(Nc,1), umin);\r\n    Umax = kron(ones(Nc,1), umax);\r\n    Ut   = kron(ones(Nc,1),um);\r\n%----(1) lbA <= A_t*x<=ubA----------%\r\n    A_t=zeros(Nc,Nc);\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if p >= q \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ӦfalconeԼľA,ڿ˻\r\n    ubA = Umax - Ut; %\r\n    lbA = Umin - Ut;\r\n%---- lb=<x<=ub----------%\r\n    lb=kron(ones(Nc,1), dumin);\r\n    ub=kron(ones(Nc,1), dumax);\r\n% end %EoF\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_GivenPathTracking/ReadMe",
    "content": "MPC for given path tracking\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_GivenPathTracking/chapter4_4_2.m",
    "content": "function [sys,x0,str,ts] = chapter4_4_2(t,x,u,flag)\r\n%   úдĵ3S(MATLAB汾R2011a)\r\n%   ޶ڳ˶ѧģͣΪٶȺǰƫǣʹõQPΪ°汾QPⷨ\r\n%   [sys,x0,str,ts] = MY_MPCController3(t,x,u,flag)\r\n%\r\n% is an S-function implementing the MPC controller intended for use\r\n% with Simulink. The argument md, which is the only user supplied\r\n% argument, contains the data structures needed by the controller. The\r\n% input to the S-function block is a vector signal consisting of the\r\n% measured outputs and the reference values for the controlled\r\n% outputs. The output of the S-function block is a vector signal\r\n% consisting of the control variables and the estimated state vector,\r\n% potentially including estimated disturbance states.\r\n\r\nswitch flag,\r\n case 0\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n\r\n\r\n case {1,4,9} % Unused flags\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0;\r\nsizes.NumDiscStates  = 3;\r\nsizes.NumOutputs     = 8;\r\nsizes.NumInputs      = 10;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 =[0;0;0];   \r\nglobal U;\r\nU=[0;0];\r\n% Initialize the discrete states.\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.1 0];       % sample time: [period, offset]\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x;\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    global a b u_piao;\r\n    global U;\r\n    global kesi;\r\n    tic\r\n    Nx=3;%״̬ĸ\r\n    Nu =2;%ĸ\r\n    Np =60;%Ԥⲽ\r\n    Nc=30;%Ʋ\r\n    Row=10;%ɳ\r\n    fprintf('Update start, t=%6.3f\\n',t)\r\n    \r\n%    %ֱ·\r\n%     r(1)=5*t;\r\n%     r(2)=5;\r\n%     r(3)=0;\r\n%     vd1=5;\r\n%     vd2=0;\r\n    %뾶Ϊ25mԲι켣,ٶΪ5m/s\r\n    r(1)=25*sin(0.2*t);\r\n    r(2)=25+10-25*cos(0.2*t);\r\n    r(3)=0.2*t;\r\n    vd1=5;\r\n    vd2=0.104;\r\n%     %뾶Ϊ25mԲι켣,ٶΪ3m/s\r\n%     r(1)=25*sin(0.12*t);\r\n%     r(2)=25+10-25*cos(0.12*t);\r\n%     r(3)=0.12*t;\r\n%     vd1=3;\r\n%     vd2=0.104;\r\n\t%뾶Ϊ25mԲι켣,ٶΪ10m/s\r\n%      r(1)=25*sin(0.4*t);\r\n%      r(2)=25+10-25*cos(0.4*t);\r\n%      r(3)=0.4*t;\r\n%      vd1=10;\r\n%      vd2=0.104;\r\n%     %뾶Ϊ25mԲι켣,ٶΪ4m/s\r\n%      r(1)=25*sin(0.16*t);\r\n%      r(2)=25+10-25*cos(0.16*t);\r\n%      r(3)=0.16*t;\r\n%      vd1=4;\r\n%      vd2=0.104;\r\n\r\n    % ȡCarSim뵽Simulink\r\n    x_L2 = u(1); %x\r\n    x_R2 = u(2); %Һx\r\n    y_L2 = u(3); %y\r\n    y_R2 = u(4); %Һy   \r\n    Yaw  = u(5)*pi/180;%Unitdeg-->rad\r\n    Steer_SW = u(6); %̽Ƕ\r\n    Steer_L1 = u(7); %ǰƫ\r\n    Steer_R1 = u(8); %ǰƫ\r\n    Vx_L2 = u(9);  %ٶȣUnit:km/h\r\n    Vx_R2 = u(10); %ҺٶȣUnit:km/h\r\n    \r\n    Car_X = 0.5*(x_L2 + x_R2);%X꣬Unit:m\r\n    Car_Y = 0.5*(y_L2 + y_R2);%Y꣬Unit:m\r\n    Vx_km_h = 0.5*(Vx_L2 + Vx_R2);%Ĵٶ,Unitkm/h\r\n    Steer_deg = 0.5*(Steer_L1 + Steer_R1);%ЧǰƫǣUnitdeg\r\n\r\n    kesi=zeros(Nx+Nu,1);\r\n    kesi(1)=Car_X-r(1);%u(1)==X(1)\r\n    kesi(2)=Car_Y-r(2);%u(2)==X(2)\r\n    t_d = Yaw;\r\n    kesi(3)=t_d-r(3); %u(3)==X(3)\r\n    \r\n    kesi(4)=Vx_km_h;\r\n    kesi(5)=Steer_deg;\r\n    fprintf('Update start, u(1)=%4.2f\\n', Vx_km_h)\r\n    fprintf('Update start, u(2)=%4.2f\\n', Steer_deg)\r\n\r\n    T=0.1;\r\n    T_all=40;%ʱ趨ܵķʱ䣬ҪǷֹ켣Խ\r\n    % Mobile Robot Parameters\r\n    L = 2.6;\r\n    % Mobile Robot variable\r\n    \r\n    \r\n%ʼ   \r\n    u_piao=zeros(Nx,Nu);\r\n    Q=100*eye(Nx*Np,Nx*Np);    \r\n    R=5*eye(Nu*Nc);\r\n    a=[1    0   -vd1*sin(t_d)*T;\r\n       0    1   vd1*cos(t_d)*T;\r\n       0    0   1;];\r\n    b=[cos(t_d)*T   0;\r\n       sin(t_d)*T   0;\r\n       tan(vd2)*T/L      vd1*T/(cos(vd2)^2);];\r\n    A_cell=cell(2,2);\r\n    B_cell=cell(2,1);\r\n    A_cell{1,1}=a;\r\n    A_cell{1,2}=b;\r\n    A_cell{2,1}=zeros(Nu,Nx);\r\n    A_cell{2,2}=eye(Nu);\r\n    B_cell{1,1}=b;\r\n    B_cell{2,1}=eye(Nu);\r\n    A=cell2mat(A_cell);\r\n    B=cell2mat(B_cell);\r\n    C=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;];\r\n    PHI_cell=cell(Np,1);\r\n    THETA_cell=cell(Np,Nc);\r\n    for j=1:1:Np\r\n        PHI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Nx,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI=cell2mat(PHI_cell);%size(PHI)=[Nx*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Nx*Np Nu*(Nc+1)]\r\n    H_cell=cell(2,2);\r\n    H_cell{1,1}=THETA'*Q*THETA+R;\r\n    H_cell{1,2}=zeros(Nu*Nc,1);\r\n    H_cell{2,1}=zeros(1,Nu*Nc);\r\n    H_cell{2,2}=Row;\r\n    H=cell2mat(H_cell);\r\n\r\n     error=PHI*kesi;\r\n    f_cell=cell(1,2);\r\n    f_cell{1,1}=2*error'*Q*THETA;\r\n    f_cell{1,2}=0;\r\n%     f=(cell2mat(f_cell))';\r\n    f=cell2mat(f_cell);\r\n    f = f';\r\n %% ΪԼ\r\n %ʽԼ\r\n    A_t=zeros(Nc,Nc);%falcone P181\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if q<=p \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ӦfalconeԼľA,ڿ˻\r\n    Ut=kron(ones(Nc,1),U);%˴оĿڿƻ,ʱ˳\r\n    umin=[-0.2;-0.54;];%άƱĸͬ\r\n    umax=[0.2;0.332];\r\n    delta_umin=[0.05;-0.0082;];\r\n    delta_umax=[0.05;0.0082];\r\n    Umin=kron(ones(Nc,1),umin);\r\n    Umax=kron(ones(Nc,1),umax);\r\n    A_cons_cell={A_I zeros(Nu*Nc,1);-A_I zeros(Nu*Nc,1)};\r\n    b_cons_cell={Umax-Ut;-Umin+Ut};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ\r\n    b_cons=cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n   % ״̬Լ\r\n    M=10; \r\n    delta_Umin=kron(ones(Nc,1),delta_umin);\r\n    delta_Umax=kron(ones(Nc,1),delta_umax);\r\n    lb=[delta_Umin;0];%̣ⷽ״̬½磬ʱڿɳ\r\n    ub=[delta_Umax;M];%̣ⷽ״̬Ͻ磬ʱڿɳ\r\n    \r\n    %% ʼ\r\n%     options = optimset('Algorithm','active-set');\r\n    options = optimset('Algorithm','interior-point-convex'); \r\n%     options = optimoptions('quadprog','Algorithm','interior-point');\r\n    [X,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub,[],options);\r\n    %% \r\n    u_piao(1)=X(1);\r\n    u_piao(2)=X(2);\r\n    U(1)=kesi(4)+u_piao(1);%ڴ洢һʱ̵Ŀ\r\n    U(2)=kesi(5)+u_piao(2);\r\n    u_real(1)=U(1)+vd1;\r\n    u_real(2)=U(2)+vd2;\r\n    sys= [u_real; Car_X; Car_Y; Yaw; Vx_m_s; Steer_rad; Steer_SW];\r\n    toc\r\n% End of mdlOutputs."
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/Chapter4_MPC_SSM_PathTracking.par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run290.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 18:43 on September 03, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run290.par`09-01-2019`23:30:22\r\n#FullDataName CarSim Run Control`Chapter4_MPC_SSM_PathTracking`BOOK_MPC_Examples\r\n#VehicleCode Ind_SA\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex137.par`09-01-2019`23:34:22\r\n#FullDataName Models: Simulink`chapt4_MPC_SSM_PathCtrackingCtrl`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap4_MPC_SSM_PathTracking\\MPC_SSM_CurvePathTracking.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap4_MPC_SSM_PathTracking\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap4_MPC_SSM_PathTracking\r\nENTER_PARSFILE IO_Channels\\I_Channels\\I_Ch123.par`09-01-2019`23:34:17\r\n#FullDataName I/O Channels: Import`chapt4_SteeringSW_Imports`MPC_BOOK_Sim_Imports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_imports_tab.txt\r\n\r\n#MiscYellow0\r\nIMP_STEER_SW Replace 0.0 1\r\n#ENDMYellow\r\n\r\n#RingCtrl0 2\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Import; { MPC_BOOK_Sim_Imports } chapt4_SteeringSW_Imports\r\n#Library : I/O Channels: Import\r\n#DataSet : chapt4_SteeringSW_Imports\r\n#Category: MPC_BOOK_Sim_Imports\r\n#FileID  : I_Ch123\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:34:17\r\n#VehCode Import Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\I_Channels\\I_Ch123.par\r\n\r\n#BlueLink0 I/O Channels: Import`chapt4_SteeringSW_Imports` MPC_BOOK_Sim_Imports` , Import\r\n\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch128.par`09-01-2019`23:33:43\r\n#FullDataName I/O Channels: Export`chapt4_SSM_PathTracking_Exports`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Xo\r\nEXP_Yo\r\nEXP_Yaw\r\nEXP_Ax\r\nEXP_Steer_L1\r\nEXP_Steer_R1\r\n#MiscYellow0\r\n#Number of Selected Channels: 7\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Xo\r\n#CHN_NAME: Yo\r\n#CHN_NAME: Yaw\r\n#CHN_NAME: Ax\r\n#CHN_NAME: Steer_L1\r\n#CHN_NAME: Steer_R1\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } chapt4_SSM_PathTracking_Exports\r\n#Library : I/O Channels: Export\r\n#DataSet : chapt4_SSM_PathTracking_Exports\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch128\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:33:43\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch128.par\r\n\r\n#BlueLink1 I/O Channels: Export`chapt4_SSM_PathTracking_Exports` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_MPC_SSM_PathTrackingCtrl.sim\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } chapt4_MPC_SSM_PathCtrackingCtrl\r\n#Library : Models: Simulink\r\n#DataSet : chapt4_MPC_SSM_PathCtrackingCtrl\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex137\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:34:22\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex137.par\r\n\r\n#BlueLink12 Models: Simulink`chapt4_MPC_SSM_PathCtrackingCtrl` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 290\r\nID_RUN 290\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle165.par`08-23-2019`18:41:30\r\n#FullDataName Vehicle: Assembly`D-Class, SUV LEO-defined`CS D-Class\r\n#VehCode Ind_SA\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 3\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp119.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`D-Class, SUV - Front Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.611\r\n*R_SPRING_R 0.611\r\n*R_DAMPER_L 0.614\r\n*R_DAMPER_R 0.614\r\n*CT_FX_L 4.45e-6\r\n*CT_FX_R 4.45e-6\r\n*CS_FY_L -1.0e-06\r\n*CS_FY_R -1.0e-06\r\n*CS_MZ_L 3.8e-4\r\n*CS_MZ_R 3.8e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 1.5e-5\r\n*CI_FY_R 1.5e-5\r\n*CI_MZ_L 3.1e-5\r\n*CI_MZ_R 3.1e-5\r\n*C_LONG_L 1.6e-5\r\n*C_LONG_R 1.6e-5\r\n*C_LAT_L 1.6e-5\r\n*C_LAT_R 1.6e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.614\r\n*R_JOUNCE_R 0.614\r\n*R_REBOUND_L 0.614\r\n*R_REBOUND_R 0.614\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock102.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big SUV Damping`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE SPLINE\r\n-1410, -7316\r\n-720, -5019\r\n-390, -3395\r\n-210, -2618\r\n-90, -1472\r\n-20, -333\r\n20, 333\r\n90, 870\r\n200, 1145\r\n390, 1607\r\n760, 2623\r\n1160, 3740\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big SUV Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big SUV Damping\r\n#Category:\r\n#FileID  : Shock102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock102.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big SUV Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx107.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 569 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 569\r\n\r\nMX_AUX_COEFFICIENT 569\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 569 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 569 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx107.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 569 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.614\r\nCT_FX_COEFFICIENT 4.45e-6\r\nCS_FY_COEFFICIENT -1.0e-06\r\nCS_MZ_COEFFICIENT 3.8e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.5e-5\r\nCI_MZ_COEFFICIENT 3.1e-5\r\nC_LONG_COEFFICIENT 1.6e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.614\r\nCMP_RSTOP_COEFFICIENT 0.614\r\nENTER_PARSFILE Suspensions\\Springs\\Spring117.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Spring`130 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 130\r\nFS_EXT_COEFFICIENT 130\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 130\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 130 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 130 N/mm\r\n#Category:\r\n#FileID  : Spring117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring117.par\r\n\r\n#BlueLink0 Suspension: Spring`130 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big SUV Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.614\r\nCT_FX_COEFFICIENT 4.45e-6\r\nCS_FY_COEFFICIENT -1.0e-06\r\nCS_MZ_COEFFICIENT 3.8e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.5e-5\r\nCI_MZ_COEFFICIENT 3.1e-5\r\nC_LONG_COEFFICIENT 1.6e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.614\r\nCMP_RSTOP_COEFFICIENT 0.614\r\n#BlueLink3 Suspension: Spring`130 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS D-Class } D-Class, SUV - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : D-Class, SUV - Front Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmp119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp119_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.7 Hz and a front corner weight of 428 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp119_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp119.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`D-Class, SUV - Front Comp.` CS D-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin115.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`D-Class, SUV - Front Suspension`CS D-Class\r\niside 1\r\nL_TRACK 1565\r\nY_CL_SUSP 0\r\nM_US 80\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L -0.2\r\n*TOE_R -0.2\r\n*CAMBER_L -0.3\r\n*CAMBER_R -0.3\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -0.3\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -0.3\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS D-Class } D-Class, SUV - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : D-Class, SUV - Front Suspension\r\n#Category: CS D-Class\r\n#FileID  : IndKin115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin115_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin115_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin115.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`D-Class, SUV - Front Suspension` CS D-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire112.par`08-02-2011`16:42:33\r\n#FullDataName Tire`255/75 R16`Touring Tires\r\nX_LENGTH 394\r\nZ_LENGTH 394\r\nY_LENGTH 255\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup140.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Small SUV`Tires\r\n*ANGLE_Z 180\r\n*ANGLE_Y 0\r\n*ANGLE_X 0\r\n*X_REF_LENGTH 334\r\n*Y_REF_LENGTH 205\r\n*Z_REF_LENGTH 334\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL257.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Tire\r\n#Category: Tires\r\n#FileID  : AniSTL257\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL257.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Small SUV Tire` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL258.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .6 .6 .6\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 50\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL258\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL258.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Small SUV Wheel` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL259.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL259\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL259.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Small SUV Stripe` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL260.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Rotor`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\rotor.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .1 .1 .1\r\n*SPECULAR 0\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Rotor\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Rotor\r\n#Category: Tires\r\n#FileID  : AniSTL260\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL260.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Small SUV Rotor` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nx_ref_length 334\r\ny_ref_length 205\r\nz_ref_length 334\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Small SUV\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Small SUV\r\n#Category: Tires\r\n#FileID  : StlGroup140\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup140.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Small SUV` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 255\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet106.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 1150 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 1150; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 1150 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 1150 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet106.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 1150 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 379\r\nR0 394\r\nFZ_TIRE_COEFFICIENT 470\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 780\r\nVLOW_ALPHA 5\r\nRR_C 0.0042\r\nRR_V 0.000032\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.5\r\nENTER_PARSFILE Tires\\Mz\\TireMz109.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.5, 14.18, 27.44, 39.66, 50.77, 60.75, 69.58, 77.28, 83.85\r\n1, 28.61, 55.37, 80.02, 102.45, 122.6, 140.44, 155.97, 169.22\r\n1.5, 42.17, 81.77, 118.43, 151.95, 182.2, 209.12, 232.69, 252.89\r\n2, 52.19, 101.72, 148.12, 191.09, 230.41, 265.9, 297.44, 324.92\r\n2.5, 56.3, 110.58, 162.37, 211.32, 257.09, 299.38, 337.91, 372.43\r\n3, 54.51, 107.99, 160.11, 210.54, 258.91, 304.87, 348.02, 387.99\r\n3.5, 48.92, 97.71, 146.21, 194.18, 241.35, 287.38, 331.9, 374.51\r\n4, 41.89, 84.25, 127.05, 170.2, 213.52, 256.78, 299.72, 341.99\r\n4.5, 34.92, 70.64, 107.23, 144.67, 182.91, 221.83, 261.26, 300.98\r\n5, 28.7, 58.33, 89.04, 120.86, 153.81, 187.85, 222.93, 258.91\r\n5.5, 23.39, 47.76, 73.27, 99.99, 127.99, 157.28, 187.88, 219.73\r\n6, 18.96, 38.88, 59.94, 82.23, 105.83, 130.8, 157.18, 184.99\r\n6.5, 15.28, 31.48, 48.78, 67.28, 87.08, 108.26, 130.86, 154.95\r\n7, 12.21, 25.31, 39.45, 54.74, 71.3, 89.18, 108.48, 129.26\r\n7.5, 9.65, 20.13, 31.61, 44.2, 57.98, 73.05, 89.48, 107.35\r\n8, 7.49, 15.77, 25, 35.28, 46.7, 59.35, 73.31, 88.65\r\n8.5, 5.65, 12.07, 19.38, 27.69, 37.09, 47.67, 59.49, 72.64\r\n9, 4.09, 8.89, 14.56, 21.19, 28.85, 37.63, 47.61, 58.86\r\n9.5, 2.73, 6.16, 10.41, 15.57, 21.73, 28.96, 37.34, 46.92\r\n10, 1.56, 3.78, 6.8, 10.7, 15.55, 21.43, 28.4, 36.54\r\n10.5, 0.53, 1.71, 3.64, 6.43, 10.14, 14.83, 20.58, 27.44\r\n11, -0.37, -0.12, 0.87, 2.68, 5.37, 9.02, 13.69, 19.43\r\n11.5, -1.17, -1.74, -1.59, -0.65, 1.16, 3.88, 7.59, 12.34\r\n12, -1.89, -3.18, -3.78, -3.61, -2.6, -0.69, 2.16, 6.03\r\n12.5, -2.53, -4.48, -5.74, -6.26, -5.96, -4.78, -2.69, 0.39\r\n13, -3.1, -5.64, -7.5, -8.64, -8.97, -8.46, -7.05, -4.69\r\n13.5, -3.62, -6.68, -9.1, -10.79, -11.7, -11.78, -10.99, -9.26\r\n14, -4.09, -7.64, -10.54, -12.74, -14.17, -14.79, -14.55, -13.41\r\n14.5, -4.52, -8.5, -11.85, -14.51, -16.42, -17.53, -17.8, -17.18\r\n15, -4.91, -9.29, -13.05, -16.13, -18.47, -20.03, -20.76, -20.62\r\n15.5, -5.27, -10.02, -14.16, -17.62, -20.35, -22.32, -23.48, -23.78\r\n16, -5.6, -10.69, -15.17, -18.98, -22.09, -24.43, -25.97, -26.67\r\n16.5, -5.91, -11.3, -16.1, -20.24, -23.68, -26.37, -28.27, -29.34\r\n17, -6.19, -11.87, -16.97, -21.41, -25.16, -28.16, -30.39, -31.81\r\n17.5, -6.45, -12.4, -17.77, -22.49, -26.52, -29.83, -32.36, -34.09\r\n18, -6.7, -12.9, -18.51, -23.5, -27.8, -31.37, -34.19, -36.21\r\n18.5, -6.92, -13.35, -19.21, -24.43, -28.98, -32.81, -35.89, -38.19\r\n19, -7.14, -13.78, -19.86, -25.31, -30.09, -34.16, -37.48, -40.03\r\n19.5, -7.33, -14.18, -20.47, -26.13, -31.12, -35.41, -38.97, -41.75\r\n20, -7.52, -14.56, -21.04, -26.89, -32.09, -36.59, -40.36, -43.36\r\n20.5, -7.7, -14.91, -21.57, -27.61, -33, -37.7, -41.67, -44.88\r\n21, -7.86, -15.25, -22.07, -28.29, -33.86, -38.74, -42.9, -46.3\r\n21.5, -8.02, -15.56, -22.55, -28.93, -34.67, -39.72, -44.05, -47.64\r\n22, -8.16, -15.86, -23, -29.53, -35.43, -40.64, -45.14, -48.91\r\n22.5, -8.3, -16.14, -23.42, -30.1, -36.15, -41.51, -46.18, -50.1\r\n23, -8.43, -16.4, -23.82, -30.64, -36.83, -42.34, -47.15, -51.23\r\n23.5, -8.56, -16.65, -24.2, -31.16, -37.47, -43.13, -48.08, -52.3\r\n24, -8.68, -16.89, -24.56, -31.64, -38.09, -43.87, -48.95, -53.32\r\n24.5, -8.79, -17.12, -24.91, -32.1, -38.67, -44.58, -49.79, -54.28\r\n25, -8.9, -17.33, -25.23, -32.54, -39.23, -45.25, -50.58, -55.2\r\n26, -8.9, -17.33, -25.23, -32.54, -39.23, -45.25, -50.58, -55.2\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 255/75 R16\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireMz109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz109.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`255/75 R16` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy109.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.5, 306.2, 600.88, 882.3, 1149.48, 1401.78, 1638.74, 1860.01, 2065.37\r\n1, 605.83, 1189, 1746.07, 2275.1, 2774.82, 3244.29, 3682.86, 4090.04\r\n1.5, 892.78, 1752.48, 2574.01, 3354.57, 4092.23, 4785.63, 5433.75, 6035.88\r\n2, 1161.8, 2281.06, 3351.23, 4368.63, 5330.76, 6235.81, 7082.44, 7869.65\r\n2.5, 1408.82, 2766.79, 4066.08, 5302.21, 6472.14, 7573.62, 8604.98, 9564.94\r\n3, 1631.13, 3204.39, 4710.78, 6145.16, 7503.95, 8784.53, 9984.87, 11103.43\r\n3.5, 1827.46, 3591.29, 5281.5, 6892.37, 8419.86, 9860.96, 11213.35, 12475.2\r\n4, 1997.83, 3927.42, 5778.04, 7543.42, 9219.14, 10801.85, 12288.92, 13678.27\r\n4.5, 2143.28, 4214.8, 6203.19, 8101.76, 9905.76, 11611.53, 13216.18, 14717.36\r\n5, 2265.63, 4456.89, 6561.91, 8573.68, 10487.15, 12298.4, 14004.3, 15602.28\r\n5.5, 2367.15, 4658.08, 6860.54, 8967.25, 10972.93, 12873.45, 14665.46, 16346.2\r\n6, 2450.32, 4823.16, 7106.01, 9291.39, 11373.81, 13348.99, 15213.38, 16964.05\r\n6.5, 2517.61, 4956.95, 7305.33, 9555.12, 11700.69, 13737.6, 15662.17, 17471.29\r\n7, 2571.36, 5064.02, 7465.19, 9767.1, 11964.03, 14051.42, 16025.47, 17882.95\r\n7.5, 2613.7, 5148.56, 7591.68, 9935.26, 12173.47, 14301.67, 16315.97, 18213.03\r\n8, 2646.53, 5214.25, 7690.26, 10066.67, 12337.64, 14498.42, 16545.06, 18474.15\r\n8.5, 2671.48, 5264.33, 7765.64, 10167.52, 12464.06, 14650.49, 16722.78, 18677.46\r\n9, 2689.94, 5301.54, 7821.89, 10243.09, 12559.22, 14765.48, 16857.78, 18832.62\r\n9.5, 2703.09, 5328.18, 7862.41, 10297.87, 12628.63, 14849.86, 16957.46, 18947.88\r\n10, 2711.91, 5346.21, 7890.07, 10335.61, 12676.9, 14909.09, 17028.06, 19030.22\r\n10.5, 2717.21, 5357.22, 7907.26, 10359.46, 12707.9, 14947.72, 17074.79, 19085.51\r\n11, 2719.66, 5362.55, 7915.95, 10372.01, 12724.83, 14969.54, 17102.02, 19118.65\r\n11.5, 2719.82, 5363.29, 7917.76, 10375.41, 12730.34, 14977.71, 17113.38, 19133.71\r\n12, 2718.14, 5360.35, 7914.04, 10371.43, 12726.63, 14974.81, 17111.84, 19134.07\r\n12.5, 2714.98, 5354.46, 7905.89, 10361.53, 12715.5, 14963, 17099.89, 19122.53\r\n13, 2710.66, 5346.22, 7894.2, 10346.89, 12698.43, 14944.03, 17079.56, 19101.4\r\n13.5, 2705.42, 5336.13, 7879.72, 10328.49, 12676.64, 14919.36, 17052.55, 19072.58\r\n14, 2699.47, 5324.6, 7863.04, 10307.15, 12651.12, 14890.18, 17020.22, 19037.64\r\n14.5, 2692.97, 5311.96, 7844.68, 10283.53, 12622.71, 14857.47, 16983.73, 18997.87\r\n15, 2686.05, 5298.47, 7825.03, 10258.15, 12592.06, 14822.04, 16944, 18954.35\r\n15.5, 2678.82, 5284.36, 7804.42, 10231.46, 12559.74, 14784.54, 16901.81, 18907.95\r\n16, 2671.39, 5269.8, 7783.12, 10203.82, 12526.19, 14745.53, 16857.79, 18859.39\r\n16.5, 2663.81, 5254.95, 7761.36, 10175.53, 12491.79, 14705.44, 16812.45, 18809.27\r\n17, 2656.15, 5239.92, 7739.31, 10146.83, 12456.83, 14664.64, 16766.24, 18758.07\r\n17.5, 2648.45, 5224.82, 7717.11, 10117.91, 12421.57, 14623.42, 16719.48, 18706.2\r\n18, 2640.76, 5209.71, 7694.9, 10088.94, 12386.19, 14582.03, 16672.46, 18653.97\r\n18.5, 2633.11, 5194.66, 7672.76, 10060.03, 12350.87, 14540.66, 16625.43, 18601.65\r\n19, 2625.51, 5179.72, 7650.77, 10031.3, 12315.73, 14499.47, 16578.55, 18549.47\r\n19.5, 2618, 5164.94, 7628.98, 10002.82, 12280.89, 14458.59, 16531.99, 18497.6\r\n20, 2610.59, 5150.33, 7607.46, 9974.67, 12246.41, 14418.12, 16485.87, 18446.16\r\n20.5, 2603.28, 5135.93, 7586.23, 9946.89, 12212.37, 14378.14, 16440.27, 18395.29\r\n21, 2596.09, 5121.76, 7565.32, 9919.51, 12178.83, 14338.72, 16395.28, 18345.07\r\n21.5, 2589.02, 5107.83, 7544.76, 9892.59, 12145.8, 14299.89, 16350.96, 18295.56\r\n22, 2582.08, 5094.15, 7524.57, 9866.12, 12113.34, 14261.7, 16307.34, 18246.82\r\n22.5, 2575.28, 5080.72, 7504.74, 9840.14, 12081.45, 14224.18, 16264.47, 18198.88\r\n23, 2568.6, 5067.56, 7485.29, 9814.64, 12050.15, 14187.34, 16222.36, 18151.78\r\n23.5, 2562.07, 5054.66, 7466.23, 9789.64, 12019.45, 14151.19, 16181.02, 18105.54\r\n24, 2555.66, 5042.02, 7447.55, 9765.14, 11989.35, 14115.74, 16140.48, 18060.16\r\n24.5, 2549.39, 5029.64, 7429.26, 9741.13, 11959.86, 14080.99, 16100.72, 18015.65\r\n25, 2543.26, 5017.52, 7411.34, 9717.62, 11930.96, 14046.94, 16061.75, 17972.01\r\n26, 2543.26, 5017.52, 7411.34, 9717.62, 11930.96, 14046.94, 16061.75, 17972.01\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 255/75 R16\r\n#Library : Tire: Lateral Force\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireFy109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy109.par\r\n\r\n#BlueLink1 Tire: Lateral Force`255/75 R16` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx109.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.02, 1258.94, 2468.09, 3619.86, 4710.05, 5735.83, 6695.23, 7586.84, 8409.7\r\n0.04, 1993.59, 3916.87, 5758.7, 7512.6, 9173.94, 10739.23, 12205.7, 13571.17\r\n0.06, 2344.28, 4612.4, 6792.08, 8875.96, 10858.65, 12735.94, 14504.35, 16161.01\r\n0.08, 2516.82, 4955.83, 7304.36, 9554.74, 11701.28, 13739.45, 15665.47, 17476.15\r\n0.1, 2608.63, 5139.03, 7578.4, 9918.95, 12154.85, 14281.44, 16294.79, 18191.53\r\n0.12, 2660.42, 5242.66, 7733.87, 10126.21, 12413.81, 14591.92, 16656.52, 18604.16\r\n0.14, 2690.36, 5302.78, 7824.43, 10247.46, 12565.96, 14775.15, 16870.97, 18849.91\r\n0.16, 2707.35, 5337.12, 7876.51, 10317.67, 12654.69, 14882.77, 16997.83, 18996.3\r\n0.18, 2716.2, 5355.23, 7904.34, 10355.71, 12703.42, 14942.66, 17069.34, 19079.87\r\n0.2, 2719.69, 5362.66, 7916.21, 10372.54, 12725.75, 14971.02, 17104.25, 19121.85\r\n0.22, 2719.56, 5362.84, 7917.22, 10374.93, 12730.08, 14977.86, 17114.17, 19135.39\r\n0.24, 2716.91, 5357.99, 7910.7, 10367.29, 12721.88, 14969.69, 17106.6, 19129.01\r\n0.26, 2712.5, 5349.62, 7898.89, 10352.57, 12704.84, 14950.89, 17086.64, 19108.47\r\n0.28, 2706.85, 5338.77, 7883.33, 10332.85, 12681.51, 14924.53, 17057.82, 19077.79\r\n0.3, 2700.35, 5326.18, 7865.15, 10309.6, 12653.73, 14892.78, 17022.68, 19039.82\r\n0.32, 2693.25, 5312.4, 7845.14, 10283.88, 12622.82, 14857.24, 16983.05, 18996.67\r\n0.34, 2685.76, 5297.81, 7823.91, 10256.48, 12589.77, 14819.06, 16940.29, 18949.87\r\n0.36, 2678.02, 5282.71, 7801.88, 10227.99, 12555.32, 14779.14, 16895.42, 18900.59\r\n0.38, 2670.15, 5267.33, 7779.4, 10198.86, 12520, 14738.13, 16849.22, 18849.7\r\n0.4, 2662.23, 5251.82, 7756.71, 10169.41, 12484.24, 14696.53, 16802.26, 18797.88\r\n0.42, 2654.32, 5236.32, 7734, 10139.9, 12448.36, 14654.73, 16755, 18745.62\r\n0.44, 2646.46, 5220.92, 7711.41, 10110.51, 12412.59, 14613.01, 16707.76, 18693.33\r\n0.46, 2638.7, 5205.69, 7689.05, 10081.4, 12377.13, 14571.59, 16660.82, 18641.29\r\n0.48, 2631.05, 5190.68, 7667, 10052.68, 12342.09, 14530.64, 16614.36, 18589.74\r\n0.5, 2623.54, 5175.93, 7645.33, 10024.41, 12307.6, 14490.29, 16568.55, 18538.86\r\n0.52, 2616.18, 5161.47, 7624.06, 9996.66, 12273.71, 14450.63, 16523.48, 18488.76\r\n0.54, 2608.98, 5147.31, 7603.24, 9969.48, 12240.5, 14411.72, 16479.23, 18439.55\r\n0.56, 2601.95, 5133.48, 7582.88, 9942.89, 12207.98, 14373.62, 16435.88, 18391.3\r\n0.58, 2595.09, 5119.98, 7563, 9916.91, 12176.2, 14336.35, 16393.45, 18344.04\r\n0.6, 2588.4, 5106.81, 7543.6, 9891.54, 12145.16, 14299.94, 16351.97, 18297.83\r\n0.62, 2581.88, 5093.97, 7524.68, 9866.8, 12114.87, 14264.38, 16311.46, 18252.66\r\n0.64, 2575.53, 5081.47, 7506.24, 9842.68, 12085.33, 14229.7, 16271.92, 18208.56\r\n0.66, 2569.35, 5069.29, 7488.28, 9819.18, 12056.54, 14195.87, 16233.34, 18165.51\r\n0.68, 2563.33, 5057.43, 7470.79, 9796.28, 12028.47, 14162.9, 16195.72, 18123.52\r\n0.7, 2557.47, 5045.89, 7453.76, 9773.98, 12001.14, 14130.77, 16159.05, 18082.57\r\n0.72, 2551.78, 5034.66, 7437.19, 9752.27, 11974.51, 14099.47, 16123.31, 18042.65\r\n0.74, 2546.23, 5023.73, 7421.05, 9731.13, 11948.58, 14068.97, 16088.48, 18003.73\r\n0.76, 2540.84, 5013.09, 7405.35, 9710.55, 11923.33, 14039.26, 16054.54, 17965.8\r\n0.78, 2535.59, 5002.74, 7390.06, 9690.52, 11898.74, 14010.33, 16021.48, 17928.83\r\n0.8, 2530.49, 4992.66, 7375.18, 9671.01, 11874.79, 13982.14, 15989.26, 17892.79\r\n0.82, 2525.52, 4982.86, 7360.7, 9652.01, 11851.47, 13954.68, 15957.87, 17857.68\r\n0.84, 2520.68, 4973.31, 7346.59, 9633.52, 11828.76, 13927.93, 15927.28, 17823.45\r\n0.86, 2515.97, 4964.02, 7332.86, 9615.5, 11806.63, 13901.87, 15897.47, 17790.09\r\n0.88, 2511.39, 4954.98, 7319.49, 9597.96, 11785.07, 13876.48, 15868.42, 17757.57\r\n0.9, 2506.93, 4946.16, 7306.46, 9580.86, 11764.07, 13851.73, 15840.1, 17725.87\r\n0.92, 2502.58, 4937.58, 7293.77, 9564.21, 11743.6, 13827.61, 15812.5, 17694.95\r\n0.94, 2498.35, 4929.22, 7281.41, 9547.98, 11723.65, 13804.1, 15785.58, 17664.8\r\n0.96, 2494.22, 4921.07, 7269.36, 9532.16, 11704.21, 13781.17, 15759.34, 17635.4\r\n0.98, 2490.2, 4913.13, 7257.62, 9516.74, 11685.25, 13758.82, 15733.74, 17606.72\r\n1, 2486.29, 4905.39, 7246.17, 9501.7, 11666.76, 13737.01, 15708.77, 17578.73\r\n1.02, 2486.29, 4905.39, 7246.17, 9501.7, 11666.76, 13737.01, 15708.77, 17578.73\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 255/75 R16\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireFx109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx109.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`255/75 R16` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff109.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`255/75 R16`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n1127.76475, -5.0637\r\n2255.5295, -9.5404\r\n3383.29425, -13.704\r\n4511.059, -17.6355\r\n5638.82375, -21.3781\r\n6766.5885, -24.9597\r\n7894.35325, -28.3995\r\n9022.118, -31.7123\r\n10149.88275, -34.9094\r\n11277.6475, -38\r\n12405.41225, -40.9917\r\n13533.177, -43.8909\r\n14660.94175, -46.7031\r\n15788.7065, -49.433\r\n16916.47125, -52.0848\r\n18044.236, -54.6622\r\n19172.00075, -57.1685\r\n20299.7655, -59.6066\r\n21427.53025, -61.9791\r\n22555.295, -64.2887\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 255/75 R16\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : CamStiff109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff109.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`255/75 R16` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 255/75 R16\r\n#Library : Tire\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : Tire112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire112_note.txt\r\n1150 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire112_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire112.par\r\n\r\n#BlueLink9 Tire`255/75 R16` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`255/75 R16` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nWRITE_ADD_REFERENCE_FRAME_AXLE\r\nENTER_PARSFILE Suspensions\\Compliance_SA\\SuspCmpSA105.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Solid Axle Compliance, Springs, and Dampers`D-Class, SUV - Rear Solid Axle Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\nL_SPRINGS 1103.33\r\nL_DAMPERS 1103.33\r\n*R_SPRING_L 0.9989\r\n*R_SPRING_R 1.0001\r\n*R_DAMPER_L 1.003\r\n*R_DAMPER_R 0.995\r\n*CT_FX_L 0\r\n*CT_FX_R 0\r\n*CS_FY_L 0\r\n*CS_FY_R 0\r\n*CS_MZ_L 0\r\n*CS_MZ_R 0\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 0\r\n*CI_FY_R 0\r\n*CI_MZ_L 0\r\n*CI_MZ_R 0\r\n*C_LAT_AXLE 5.3133E-04\r\n*C_LONG_AXLE 4.6049E-04\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\nL_JNC_STOPS 1100\r\nL_REB_STOPS 1100\r\n*R_JOUNCE_L 1\r\n*R_JOUNCE_R 1\r\n*R_REBOUND_L 1\r\n*R_REBOUND_R 1\r\n\r\nC_LAT_AXLE_COEFFICIENT 5.3133E-04\r\nC_LONG_AXLE_COEFFICIENT 4.6049E-04\r\nL_SPG_ADJ 0\r\n#BlueLink1 Suspension: Shock Absorber`Big SUV Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx108.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`No Auxiliary Roll Moment`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nMX_AUX_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; No Auxiliary Roll Moment\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : No Auxiliary Roll Moment\r\n#Category:\r\n#FileID  : AuxMx108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx108.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`No Auxiliary Roll Moment` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb107.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+120 mm / -60 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n118, 0\r\n119, 0\r\n120, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-60, -10000\r\n-59, 0\r\n-58, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +120 mm / -60 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +120 mm / -60 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb107.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+120 mm / -60 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.9989\r\nCMP_DAMP_COEFFICIENT 1.003\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT 0\r\nCS_MZ_COEFFICIENT 0\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nCMP_JSTOP_COEFFICIENT 1\r\nCMP_RSTOP_COEFFICIENT 1\r\nENTER_PARSFILE Suspensions\\Springs\\Spring118.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`40 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 40\r\nFS_EXT_COEFFICIENT 40\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 40\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 40 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 40 N/mm\r\n#Category:\r\n#FileID  : Spring118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring118.par\r\n\r\n#BlueLink0 Suspension: Spring`40 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big SUV Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+120 mm / -60 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 1.0001\r\nCMP_DAMP_COEFFICIENT 0.995\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT 0\r\nCS_MZ_COEFFICIENT 0\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 1\r\nCMP_RSTOP_COEFFICIENT 1\r\n#BlueLink3 Suspension: Spring`40 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Solid Axle Compliance, Springs, and Dampers; { CS D-Class } D-Class, SUV - Rear Solid Axle Comp.\r\n#Library : Suspension: Solid Axle Compliance, Springs, and Dampers\r\n#DataSet : D-Class, SUV - Rear Solid Axle Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmpSA105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Solid axle\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance_SA\\SuspCmpSA105.par\r\n\r\n#BlueLink22 Suspension: Solid Axle Compliance, Springs, and Dampers`D-Class, SUV - Rear Solid Axle Comp.` CS D-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Solid\\SaKin105.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Solid Axle System Kinematics`D-Class, SUV - Rear Suspension`CS D-Class\r\nOPT_NL_AXLE 1\r\niside 1\r\nL_TRACK 1565\r\nM_US 100\r\nIA 1.5\r\n*IW_L 0.9\r\n*IW_R 0.9\r\nR_ROLL_STEER 0.1\r\nY_CL_SUSP 0\r\n*TOE_L 0\r\n*TOE_R 0\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nH_CG_AXLE 360\r\n*JNC_DESIGN_L 0\r\n*JNC_DESIGN_R 0\r\nR_US_STR 0\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear Hotchkiss - No Dive`Hotchkiss Rear Axle\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { Hotchkiss Rear Axle } Rear Hotchkiss - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear Hotchkiss - No Dive\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : Dive105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive105_note.txt\r\nGeneric Hotchkiss Rear Axle Dive angle change vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive105.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear Hotchkiss - No Dive` Hotchkiss Rear Axle` , Axle dive\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX105.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear Hotchkiss - Longitudinal Movement`Hotchkiss Rear Axle\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-150, 5.1612\r\n-135, 2.79277\r\n-120, 0.841255\r\n-105, -0.695023\r\n-90, -1.8184\r\n-75, -2.53133\r\n-60, -2.83607\r\n-45, -2.73441\r\n-30, -2.22759\r\n-15, -1.3162\r\n0, 0\r\n15, 1.72199\r\n30, 3.85147\r\n45, 6.39054\r\n60, 9.34103\r\n75, 12.703\r\n90, 16.4714\r\n105, 20.6284\r\n120, 25.1262\r\n135, 29.8517\r\n150, 34.583\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-150, 5.1612\r\n-135, 2.79277\r\n-120, 0.841255\r\n-105, -0.695023\r\n-90, -1.8184\r\n-75, -2.53133\r\n-60, -2.83607\r\n-45, -2.73441\r\n-30, -2.22759\r\n-15, -1.3162\r\n0, 0\r\n15, 1.72199\r\n30, 3.85147\r\n45, 6.39054\r\n60, 9.34103\r\n75, 12.703\r\n90, 16.4714\r\n105, 20.6284\r\n120, 25.1262\r\n135, 29.8517\r\n150, 34.583\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { Hotchkiss Rear Axle } Rear Hotchkiss - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear Hotchkiss - Longitudinal Movement\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : SusX105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX105_note.txt\r\nGeneric Hotchkiss Rear Axle Longitudinal movement vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX105.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear Hotchkiss - Longitudinal Movement` Hotchkiss Rear Axle` , Axle X movement\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL204.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Rear Solid Drive Axle`Misc. Parts\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\misc\\solid_axle.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.502 0.502 0.502\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.007\r\nSET_OFFSET_Z 0\r\nX_REF_LENGTH 1\r\nY_REF_LENGTH 1700\r\nZ_REF_LENGTH 1\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 55\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Misc. Parts } Rear Solid Drive Axle\r\n#Library : Animator: Shape File Link\r\n#DataSet : Rear Solid Drive Axle\r\n#Category: Misc. Parts\r\n#FileID  : AniSTL204\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL204.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Rear Solid Drive Axle` Misc. Parts` , Animator\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear Hotchkiss - No Lateral Movement`Hotchkiss Rear Axle\r\n#RingCtrl0 CONSTANT\r\nSUSP_LAT_CONSTANT 0\r\nSUSP_LAT_AXLE_JOUNCE_CONSTANT 0\r\n#RadioCtrl0 1\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { Hotchkiss Rear Axle } Rear Hotchkiss - No Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear Hotchkiss - No Lateral Movement\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : SusLat105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat105_note.txt\r\nGeneric Hotchkiss Rear Axle Lateral Movement vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat105.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear Hotchkiss - No Lateral Movement` Hotchkiss Rear Axle` , Axle Y movement - jounce\r\n\r\nENTER_PARSFILE Suspensions\\Lateral_Roll\\SusLatR101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position with Roll`Rear Hotchkiss - Lat. Movement vs. Roll`Hotchiss Rear Axle\r\n#RingCtrl0 SPLINE\r\n\r\n! Note: if *TABLE_KEYWORD is not set to \"SUSP_Y_AXLE_ROLL\" then Y values read from the table will be reversed.\r\n*TABLE_KEYWORD SUSP_Y_AXLE_ROLL\r\n\r\n#DiagramOne0\r\nSUSP_Y_AXLE_ROLL_TABLE SPLINE\r\n-10.0528, -16.7928\r\n-8.3636, -14.0137\r\n-6.68194, -11.2296\r\n-5.00627, -8.43574\r\n-3.33505, -5.63126\r\n-1.66679, -2.81808\r\n0, 0\r\n1.66679, 2.81808\r\n3.33505, 5.63126\r\n5.00627, 8.43574\r\n6.68194, 11.2296\r\n8.3636, 14.0137\r\n10.0528, 16.7928\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position with Roll; { Hotchiss Rear Axle } Rear Hotchkiss - Lat. Movement vs. Roll\r\n#Library : Suspension: Lateral Position with Roll\r\n#DataSet : Rear Hotchkiss - Lat. Movement vs. Roll\r\n#Category: Hotchiss Rear Axle\r\n#FileID  : SusLatR101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral_Roll\\SusLatR101_note.txt\r\nGeneric Hotchkiss Rear Axle Lateral Movement vs. Roll\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral_Roll\\SusLatR101_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral_Roll\\SusLatR101.par\r\n\r\n#BlueLink4 Suspension: Lateral Position with Roll`Rear Hotchkiss - Lat. Movement vs. Roll` Hotchiss Rear Axle` , Axle Y movement - roll\r\n\r\nSUSP_AXLE_ROLL_STEER_COEFFICIENT 0.1\r\nY_LENGTH 1565\r\nIW 0.9\r\nA_TOE 0\r\nA_CAMBER 0\r\nJNC_DESIGN 0\r\n\r\niside 2\r\nIW 0.9\r\nA_TOE 0\r\nA_CAMBER 0\r\nJNC_DESIGN 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Solid Axle System Kinematics; { CS D-Class } D-Class, SUV - Rear Suspension\r\n#Library : Suspension: Solid Axle System Kinematics\r\n#DataSet : D-Class, SUV - Rear Suspension\r\n#Category: CS D-Class\r\n#FileID  : SaKin105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Solid Axle\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Solid\\SaKin105_note.txt\r\nGeneric Hotchkiss Rear Axle kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Solid\\SaKin105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Solid\\SaKin105.par\r\n\r\n#BlueLink23 Suspension: Solid Axle System Kinematics`D-Class, SUV - Rear Suspension` CS D-Class` , Rear kinematics (solid axle)\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`255/75 R16` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`255/75 R16` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass113.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`D-Class, SUV Sprung Mass`CS D-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 2600\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 3725\r\nH_H 550\r\nH_CG_SU 650\r\nLX_AXLE 2600\r\nLX_CG_SU 1050\r\nM_SU 1430\r\nIXX_SU 700.7\r\nIYY_SU 2059.2\r\nIZZ_SU 2059.2\r\nIXZ_SU 0\r\nRX_SGUI 0.700\r\nRY_SGUI 1.200\r\nRZ_SGUI 1.200\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1679\r\nY_LENGTH 1820\r\n*HWC_LF 350\r\n*HWC_RF 350\r\n*HWC_LR 330\r\n*HWC_RR 330\r\n\r\nH_WC 330\r\niside 2\r\nH_WC 330\r\niaxle 1\r\niside 1\r\nH_WC 350\r\niside 2\r\nH_WC 350\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS D-Class } D-Class, SUV Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : D-Class, SUV Sprung Mass\r\n#Category: CS D-Class\r\n#FileID  : SprMass113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass113.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`D-Class, SUV Sprung Mass` CS D-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero110.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`D-Class, SUV Aero`CS D-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1300\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 2600\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS D-Class } D-Class, SUV Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : D-Class, SUV Aero\r\n#Category: CS D-Class\r\n#FileID  : Aero110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero110_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero110_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero110.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`D-Class, SUV Aero` CS D-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh116.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`D-Class, SUV`D-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 2619\r\nOBJ_Y_LENGTH 1820\r\nOBJ_Z_LENGTH 1679\r\n*DZ_V -40\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 280\r\n*WHEEL_RATIO 1.25\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_OFFSET_X -2.619\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -2.619\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT -0.04\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup138.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`D-Class, SUV`CS D-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.3\r\n*X_REF_LENGTH 2850\r\n*Y_REF_LENGTH 1900\r\n*Z_REF_LENGTH 1700\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL170.par`08-02-2011`16:43:43\r\n#FullDataName Animator: Shape File Link`SUV: Body`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .5\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Body\r\n#Category: CS SUV\r\n#FileID  : AniSTL170\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:43\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL170.par\r\n\r\n#BlueLink0 Animator: Shape File Link`SUV: Body` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL174.par`08-02-2011`16:43:43\r\n#FullDataName Animator: Shape File Link`SUV: Body Trim (Gray)`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\body_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Body Trim (Gray)\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Body Trim (Gray)\r\n#Category: CS SUV\r\n#FileID  : AniSTL174\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:43\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL174.par\r\n\r\n#BlueLink1 Animator: Shape File Link`SUV: Body Trim (Gray)` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL171.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Details`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Details\r\n#Category: CS SUV\r\n#FileID  : AniSTL171\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL171.par\r\n\r\n#BlueLink2 Animator: Shape File Link`SUV: Details` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL172.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Interior`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\interior.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Interior\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Interior\r\n#Category: CS SUV\r\n#FileID  : AniSTL172\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL172.par\r\n\r\n#BlueLink3 Animator: Shape File Link`SUV: Interior` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL175.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Seats`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Seats\r\n#Category: CS SUV\r\n#FileID  : AniSTL175\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL175.par\r\n\r\n#BlueLink4 Animator: Shape File Link`SUV: Seats` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL176.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Steering Wheel`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Steering Wheel\r\n#Category: CS SUV\r\n#FileID  : AniSTL176\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL176.par\r\n\r\n#BlueLink5 Animator: Shape File Link`SUV: Steering Wheel` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL173.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Windows`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.188 0.188 0.188\r\n*SPECULAR 0.9\r\n*TRANSPARENCY 0.85\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.85\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.9 0.9 0.9\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Windows\r\n#Category: CS SUV\r\n#FileID  : AniSTL173\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL173.par\r\n\r\n#BlueLink6 Animator: Shape File Link`SUV: Windows` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL177.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Driver`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Driver\r\n#Category: CS SUV\r\n#FileID  : AniSTL177\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL177.par\r\n\r\n#BlueLink13 Animator: Shape File Link`SUV: Driver` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nx_ref_length 2850\r\ny_ref_length 1900\r\nz_ref_length 1700\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS D-Class } D-Class, SUV\r\n#Library : Animator: Shape Assembly\r\n#DataSet : D-Class, SUV\r\n#Category: CS D-Class\r\n#FileID  : StlGroup138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup138.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`D-Class, SUV` CS D-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL261.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Brake Lights (D-Class)`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.01\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.3\r\nX_REF_LENGTH 2850\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1700\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Brake Lights (D-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Brake Lights (D-Class)\r\n#Category: CS SUV\r\n#FileID  : AniSTL261\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL261.par\r\n\r\n#BlueLink3 Animator: Shape File Link`SUV: Brake Lights (D-Class)` CS SUV` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { D-Class Vehicles } D-Class, SUV\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : D-Class, SUV\r\n#Category: D-Class Vehicles\r\n#FileID  : AniVeh116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh116_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh116_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh116.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles` , Vehicle animator data\r\n\r\nENTER_PARSFILE Powertrain\\4wd\\4WD106.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`150 kW, 6-spd., 4.1 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine110.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`150 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.2\r\n\r\n#CheckBox0 0\r\nOPT_THROTTLE_DELAY 0\r\n\r\nENTER_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par`08-02-2011`16:42:52\r\n#FullDataName Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Fuel rate (kg/sec)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 26, 19 ! columns x rows\r\nFUEL_RATE_CARPET\r\n0, 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1\r\n600, 8e-05, 0.0002, 0.0003, 0.00032, 0.00034, 0.00037, 0.00039, 0.00041, 0.00043, 0.00046, 0.00048, 0.0005, 0.00052, 0.00055, 0.00057, 0.00059, 0.00061, 0.00064, 0.00066, 0.00068, 0.0007, 0.00073, 0.00075, 0.00077, 0.00079, 0.00082\r\n800, 0.00013, 0.0002, 0.0004, 0.00059, 0.00071, 0.0008, 0.00083, 0.00085, 0.00086, 0.00087, 0.00088, 0.00089, 0.0009, 0.00091, 0.00092, 0.00093, 0.00094, 0.00096, 0.00097, 0.00098, 0.00099, 0.001, 0.00101, 0.00102, 0.00103, 0.00104\r\n1000, 0.00016, 0.0002, 0.00039, 0.00062, 0.00079, 0.00091, 0.00099, 0.00104, 0.00107, 0.00108, 0.00109, 0.00111, 0.00112, 0.00113, 0.00114, 0.00115, 0.00117, 0.00118, 0.00119, 0.0012, 0.00121, 0.00123, 0.00124, 0.00125, 0.00126, 0.00127\r\n1200, 0.00016, 0.00021, 0.00039, 0.00064, 0.00088, 0.00104, 0.00114, 0.00123, 0.00128, 0.00131, 0.00133, 0.00134, 0.00135, 0.00137, 0.00138, 0.0014, 0.00141, 0.00142, 0.00144, 0.00145, 0.00147, 0.00148, 0.00149, 0.00151, 0.00152, 0.00154\r\n1400, 0.00017, 0.00023, 0.00039, 0.00066, 0.00091, 0.00113, 0.0013, 0.0014, 0.00148, 0.00153, 0.00156, 0.00158, 0.0016, 0.00161, 0.00163, 0.00165, 0.00167, 0.00168, 0.0017, 0.00172, 0.00174, 0.00175, 0.00177, 0.00179, 0.00181, 0.00182\r\n1600, 0.0002, 0.00026, 0.0004, 0.00066, 0.00095, 0.00119, 0.00139, 0.00154, 0.00164, 0.00173, 0.00178, 0.00181, 0.00183, 0.00184, 0.00186, 0.00188, 0.0019, 0.00192, 0.00194, 0.00195, 0.00197, 0.00199, 0.00201, 0.00203, 0.00205, 0.00207\r\n1800, 0.00021, 0.00028, 0.00039, 0.00067, 0.00095, 0.00124, 0.00147, 0.00166, 0.00178, 0.00189, 0.00195, 0.002, 0.00203, 0.00206, 0.00209, 0.00212, 0.00215, 0.00218, 0.00222, 0.00225, 0.00228, 0.00231, 0.00234, 0.00237, 0.0024, 0.00243\r\n2000, 0.00023, 0.0003, 0.00038, 0.00065, 0.00096, 0.00129, 0.00156, 0.00178, 0.00195, 0.00207, 0.00215, 0.00221, 0.00227, 0.00231, 0.00234, 0.00238, 0.00241, 0.00245, 0.00249, 0.00252, 0.00256, 0.00259, 0.00263, 0.00267, 0.0027, 0.00274\r\n2200, 0.00025, 0.00033, 0.00041, 0.00065, 0.00098, 0.0013, 0.00162, 0.00189, 0.00212, 0.00226, 0.00239, 0.00246, 0.00252, 0.00257, 0.00261, 0.00264, 0.00268, 0.00272, 0.00275, 0.00279, 0.00282, 0.00286, 0.0029, 0.00293, 0.00297, 0.003\r\n2400, 0.00027, 0.00036, 0.00044, 0.00065, 0.00095, 0.00133, 0.00168, 0.00199, 0.00223, 0.0024, 0.00255, 0.00265, 0.00272, 0.00278, 0.00284, 0.0029, 0.00296, 0.00302, 0.00308, 0.00314, 0.00319, 0.00325, 0.00331, 0.00337, 0.00343, 0.00349\r\n2800, 0.00033, 0.00039, 0.00046, 0.00065, 0.00097, 0.00134, 0.00174, 0.00207, 0.00239, 0.00265, 0.0028, 0.00296, 0.00307, 0.00313, 0.0032, 0.00326, 0.00331, 0.00336, 0.00342, 0.00347, 0.00352, 0.00357, 0.00363, 0.00368, 0.00373, 0.00379\r\n3200, 0.00038, 0.00045, 0.00053, 0.00064, 0.00097, 0.00136, 0.00175, 0.00216, 0.00256, 0.00287, 0.0031, 0.00326, 0.00343, 0.00365, 0.00388, 0.0041, 0.00424, 0.00425, 0.00427, 0.00429, 0.0043, 0.00432, 0.00434, 0.00435, 0.00437, 0.00439\r\n3600, 0.00043, 0.00052, 0.00061, 0.0007, 0.00095, 0.00137, 0.00179, 0.00221, 0.00272, 0.00315, 0.00347, 0.00384, 0.00423, 0.00463, 0.00487, 0.00495, 0.00502, 0.00509, 0.00513, 0.00514, 0.00516, 0.00517, 0.00519, 0.0052, 0.00521, 0.00523\r\n4000, 0.00047, 0.00059, 0.00083, 0.00118, 0.00162, 0.0021, 0.00259, 0.00317, 0.00367, 0.00403, 0.00436, 0.00487, 0.00537, 0.00587, 0.00603, 0.00608, 0.00614, 0.0062, 0.00624, 0.00625, 0.00626, 0.00627, 0.00629, 0.0063, 0.00631, 0.00633\r\n4400, 0.00051, 0.00064, 0.00085, 0.00122, 0.00165, 0.00218, 0.0027, 0.00333, 0.00392, 0.00443, 0.00477, 0.00514, 0.00568, 0.00621, 0.00675, 0.00703, 0.00709, 0.00715, 0.00721, 0.00726, 0.00731, 0.00732, 0.00733, 0.00735, 0.00736, 0.00738\r\n4800, 0.00052, 0.00074, 0.00095, 0.00121, 0.00167, 0.00218, 0.00272, 0.00336, 0.00404, 0.00459, 0.00538, 0.0064, 0.00701, 0.00725, 0.0075, 0.00774, 0.00793, 0.00799, 0.00805, 0.00811, 0.00817, 0.00822, 0.00828, 0.00829, 0.0083, 0.00831\r\n5200, 0.00059, 0.00078, 0.00098, 0.00117, 0.00164, 0.00216, 0.00272, 0.0034, 0.0041, 0.00505, 0.00633, 0.0069, 0.00747, 0.00779, 0.00807, 0.00835, 0.00863, 0.0088, 0.00886, 0.00891, 0.00897, 0.00903, 0.00909, 0.00914, 0.0092, 0.00926\r\n5600, 0.00065, 0.00083, 0.001, 0.00119, 0.0016, 0.00212, 0.00273, 0.00356, 0.00462, 0.00551, 0.00638, 0.00704, 0.00762, 0.00803, 0.0083, 0.00857, 0.00885, 0.00912, 0.00925, 0.00931, 0.00937, 0.00943, 0.00949, 0.00955, 0.00961, 0.00967\r\n5800, 0.00076, 0.0009, 0.00103, 0.00119, 0.00162, 0.00211, 0.00271, 0.00357, 0.0046, 0.00548, 0.00642, 0.00712, 0.00772, 0.00816, 0.00841, 0.00867, 0.00892, 0.00918, 0.0093, 0.00935, 0.0094, 0.00945, 0.00951, 0.00956, 0.00961, 0.00966\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Fuel Consumption Rate; 150 kW Fuel Consumption\r\n#Library : Powertrain: Fuel Consumption Rate\r\n#DataSet : 150 kW Fuel Consumption\r\n#Category:\r\n#FileID  : FuelRate102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:52\r\n#VehCode Fuel rate\r\n\r\nEXIT_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par\r\n\r\n#BlueLink0 Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption` ` , Fuel rate\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 24.75, 76.11, 101.37, 103.43, 104.6, 105.18, 105.38, 105.43, 105.46, 105.43\r\n633, 29.7, 92.87, 139.66, 149.15, 150.67, 151.28, 151.5, 151.52, 151.52, 151.52\r\n750, 0, 87.39, 148.02, 161.35, 164.95, 166.25, 166.73, 166.77, 166.77, 166.75\r\n1107, -9.9, 70.62, 173.59, 198.66, 208.61, 212.02, 213.29, 213.4, 213.37, 213.29\r\n1463, -14.85, 47.12, 167.31, 207.9, 221.15, 227.15, 230.09, 230.77, 231.22, 235.62\r\n1820, -16.83, 25.74, 148.5, 211.6, 233.68, 242.29, 246.89, 248.14, 249.06, 255.42\r\n2177, -20.17, 9.9, 117.65, 203.67, 237.6, 257.4, 260.37, 263.34, 266.31, 272.88\r\n2533, -25.32, -6.41, 81.3, 182.08, 239.58, 267, 274.23, 279.24, 282.15, 287.1\r\n2890, -30.14, -15.16, 56.41, 153.5, 233.12, 269.9, 285.22, 289.08, 295.02, 299.97\r\n3247, -34.39, -22.06, 37.66, 122.49, 223.45, 267.3, 287.1, 295.02, 300.96, 306.9\r\n3603, -38.57, -28.1, 23.48, 96.53, 201.04, 259.38, 288.09, 297, 303.93, 309.87\r\n3960, -42.77, -33.71, 11.8, 76.42, 174.35, 248.62, 285.12, 296.01, 302.94, 306.9\r\n4317, -47.21, -39.38, 0.28, 57.45, 150.24, 237.3, 280.17, 290.07, 297, 302.88\r\n4673, -51.83, -45.01, -9.97, 41.19, 125.06, 220.31, 272.25, 282.15, 292.05, 297\r\n5030, -56.74, -50.57, -19.08, 26.99, 102.65, 198.96, 262.35, 272.25, 282.15, 287.1\r\n5387, -61.67, -56.24, -27.53, 14.45, 83.52, 176.58, 246.84, 256.41, 269.64, 272.49\r\n5743, -67.19, -62.17, -35.72, 2.82, 66.2, 153.28, 221.41, 236.52, 243.61, 246.41\r\n6100, -73.21, -68.41, -43.88, -8.16, 50.38, 130.66, 193.86, 207.92, 214.52, 217.05\r\n6500, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19\r\n6700, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 150 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 150 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine110.par\r\n\r\n#BlueLink0 Powertrain: Engine`150 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC103.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 150 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.00704273\r\n0.1, 0.00704273\r\n0.2, 0.00704273\r\n0.3, 0.00704269\r\n0.4, 0.00704199\r\n0.5, 0.00703585\r\n0.6, 0.00700014\r\n0.7, 0.00684379\r\n0.8, 0.00628652\r\n0.9, 0.00458708\r\n0.95, 0.00282599\r\n0.99, 0.000673411\r\n1.01, -0.000673411\r\n1.05, -0.00282599\r\n1.1, -0.00458708\r\n1.2, -0.00628652\r\n1.3, -0.00684379\r\n1.4, -0.00700014\r\n1.5, -0.00703585\r\n1.6, -0.00704199\r\n1.7, -0.00704269\r\n1.8, -0.00704273\r\n1.9, -0.00704273\r\n2, -0.00704273\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 150 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 150 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC103.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 150 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission`\r\n#RingCtrl0 6\r\nNGEARS 6\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.168\r\nR_GEAR_TR(1) 3.538\r\nR_GEAR_TR(2) 2.06\r\nR_GEAR_TR(3) 1.404\r\nR_GEAR_TR(4) 1.00\r\nR_GEAR_TR(5) 0.713\r\nR_GEAR_TR(6) 0.582\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nT_SHIFT 0.25\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift101.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 1-2 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 874\r\n0.2, 874\r\n0.8, 1653\r\n1, 1653\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 699\r\n0.4, 699\r\n0.8, 1240\r\n1, 1240\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 1-2 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift101.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`6-speed, 1-2 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift102.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 2-3 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1282\r\n0.2, 1282\r\n0.8, 2840\r\n1, 2840\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1026\r\n0.4, 1026\r\n0.8, 2130\r\n1, 2130\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 2-3 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift102.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`6-speed, 2-3 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift103.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 3-4 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 4167\r\n1, 4167\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 3125\r\n1, 3125\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 3-4 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift103.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`6-speed, 3-4 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift104.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 4-5 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2525\r\n0.2, 2525\r\n0.8, 5850\r\n1, 5850\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2020\r\n0.4, 2020\r\n0.8, 4388\r\n1, 4388\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 4-5 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift104.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`6-speed, 4-5 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift105.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 5-6 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 3093\r\n0.2, 3093\r\n0.8, 8205\r\n1, 8205\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2474\r\n0.4, 2474\r\n0.8, 6154\r\n1, 6154\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 5-6 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift105.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`6-speed, 5-6 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 6-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 6-Speed Transmission\r\n#Category:\r\n#FileID  : Trans101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans101.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Open - Gear Ratio 4.1`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_CONSTANT 0\r\nR_GEAR_FD 4.1\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 0.8\r\nLOCKED_FD_K 80\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Open - Gear Ratio 4.1` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Open - Gear Ratio 4.1`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_CONSTANT 0\r\nR_GEAR_RD 4.1\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff103.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Open - Gear Ratio 4.1` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 150 kW, 6-spd., 4.1 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 150 kW, 6-spd., 4.1 Ratio\r\n#Category:\r\n#FileID  : 4WD106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD106_note.txt\r\nGeneric 150 kW powertrain with an automatic transmission. The torque converter data has been tuned to work with the 150 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD106_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD106.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`150 kW, 6-spd., 4.1 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W113.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`D-Class, SUV w/o ABS`CS D-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`300 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 300\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 300\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 300 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 300 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq101.par\r\n\r\n#BlueLink0 Brakes: Torque`300 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 0\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`300 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nPBK_DL_TABLE LINEAR\r\n0, 0\r\n2, 2\r\n3, 2.3\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity until 2.0MPa then 30%\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity until 2.0MPa then 30%\r\n#Category:\r\n#FileID  : BrkProp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nENTRY_NOTEFILE Brakes\\Proportioning\\BrkProp104_note.txt\r\nBrake systems without ABS control typically have a propotioning valve that reduces pressure gains on the rear wheel when a moderate pressure is reached, to avoid locking the rear wheels with high braking and associated load transfer.\r\n\r\nThey are also used on some trucks with large ranges in load.\r\nEXIT_NOTEFILE Brakes\\Proportioning\\BrkProp104_note.txt\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp104.par\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 0\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS D-Class } D-Class, SUV w/o ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : D-Class, SUV w/o ABS\r\n#Category: CS D-Class\r\n#FileID  : Brk4W113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W113.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`D-Class, SUV w/o ABS` CS D-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2111.par`08-02-2011`16:42:43\r\n#FullDataName Steering`D-Class, SUV: Power, Recirc. Ball`CS D-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.00015\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 77.0\r\n*L2_LKPO 0\r\n*R1_LKPO 77.0\r\n*R2_LKPO 0\r\n*L1_AKPI 12.5\r\n*L2_AKPI 0\r\n*R1_AKPI 12.5\r\n*R2_AKPI 0\r\n*L1_ACAST 9.5\r\n*L2_ACAST 0\r\n*R1_ACAST 9.5\r\n*R2_ACAST 0\r\n*L1_XKPO 5.0\r\n*L2_XKPO 0\r\n*R1_XKPO 5.0\r\n*R2_XKPO 0\r\n*RSW_F 20\r\n*D_GR_F 4\r\n*D_RACK_F 30\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 2\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.00015\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niside 2\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 0\r\nGEAR_ROT_COEFFICIENT 0.02\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 0\r\nGEAR_ROT_COEFFICIENT 1/20\r\nD_GEAR 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\Kinematics2\\StrKinAx102.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Recirc. Ball)`D-Class, SUV Recirc. Ball Kinematics`D-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nSTEER_KIN_TABLE SPLINE\r\n-30.6, -35.73321668\r\n-30.294, -35.33074603\r\n-29.988, -34.92888705\r\n-29.682, -34.52765493\r\n-29.376, -34.12706463\r\n-29.07, -33.72713088\r\n-28.764, -33.32786819\r\n-28.458, -32.92929081\r\n-28.152, -32.5314128\r\n-27.846, -32.13424794\r\n-27.54, -31.73780979\r\n-27.234, -31.34211166\r\n-26.928, -30.9471666\r\n-26.622, -30.55298743\r\n-26.316, -30.1595867\r\n-26.01, -29.76697671\r\n-25.704, -29.37516952\r\n-25.398, -28.98417692\r\n-25.092, -28.59401042\r\n-24.786, -28.2046813\r\n-24.48, -27.81620057\r\n-24.174, -27.42857896\r\n-23.868, -27.04182696\r\n-23.562, -26.65595478\r\n-23.256, -26.27097236\r\n-22.95, -25.88688939\r\n-22.644, -25.50371529\r\n-22.338, -25.1214592\r\n-22.032, -24.74013\r\n-21.726, -24.35973631\r\n-21.42, -23.98028649\r\n-21.114, -23.60178863\r\n-20.808, -23.22425053\r\n-20.502, -22.84767977\r\n-20.196, -22.47208363\r\n-19.89, -22.09746916\r\n-19.584, -21.72384311\r\n-19.278, -21.35121202\r\n-18.972, -20.97958212\r\n-18.666, -20.60895943\r\n-18.36, -20.23934968\r\n-18.054, -19.87075836\r\n-17.748, -19.50319072\r\n-17.442, -19.13665174\r\n-17.136, -18.77114616\r\n-16.83, -18.40667849\r\n-16.524, -18.04325296\r\n-16.218, -17.6808736\r\n-15.912, -17.31954418\r\n-15.606, -16.95926823\r\n-15.3, -16.60004905\r\n-14.994, -16.24188972\r\n-14.688, -15.88479308\r\n-14.382, -15.52876174\r\n-14.076, -15.17379809\r\n-13.77, -14.81990432\r\n-13.464, -14.46708236\r\n-13.158, -14.11533397\r\n-12.852, -13.76466066\r\n-12.546, -13.41506376\r\n-12.24, -13.06654437\r\n-11.934, -12.7191034\r\n-11.628, -12.37274156\r\n-11.322, -12.02745937\r\n-11.016, -11.68325713\r\n-10.71, -11.34013497\r\n-10.404, -10.99809284\r\n-10.098, -10.65713047\r\n-9.792, -10.31724746\r\n-9.486, -9.97844318\r\n-9.18, -9.640716858\r\n-8.874, -9.304067538\r\n-8.568, -8.968494097\r\n-8.262, -8.633995246\r\n-7.956, -8.300569533\r\n-7.65, -7.968215349\r\n-7.344, -7.636930926\r\n-7.038, -7.306714344\r\n-6.732, -6.977563533\r\n-6.426, -6.649476276\r\n-6.12, -6.322450212\r\n-5.814, -5.996482841\r\n-5.508, -5.671571523\r\n-5.202, -5.347713486\r\n-4.896, -5.024905823\r\n-4.59, -4.703145503\r\n-4.284, -4.382429366\r\n-3.978, -4.062754131\r\n-3.672, -3.744116397\r\n-3.366, -3.426512647\r\n-3.06, -3.109939249\r\n-2.754, -2.794392461\r\n-2.448, -2.479868432\r\n-2.142, -2.166363208\r\n-1.836, -1.853872728\r\n-1.53, -1.542392837\r\n-1.224, -1.231919277\r\n-0.918, -0.9224477\r\n-0.612, -0.613973663\r\n-0.306, -0.306492635\r\n2.20934e-14, 0\r\n0.306, 0.305508946\r\n0.612, 0.610038985\r\n0.918, 0.913594981\r\n1.224, 1.216181874\r\n1.53, 1.517804678\r\n1.836, 1.818468479\r\n2.142, 2.118178435\r\n2.448, 2.416939769\r\n2.754, 2.714757771\r\n3.06, 3.011637794\r\n3.366, 3.307585251\r\n3.672, 3.602605617\r\n3.978, 3.89670442\r\n4.284, 4.189887245\r\n4.59, 4.482159732\r\n4.896, 4.773527567\r\n5.202, 5.06399649\r\n5.508, 5.353572286\r\n5.814, 5.642260785\r\n6.12, 5.930067861\r\n6.426, 6.216999431\r\n6.732, 6.503061451\r\n7.038, 6.788259915\r\n7.344, 7.072600856\r\n7.65, 7.356090338\r\n7.956, 7.638734464\r\n8.262, 7.920539366\r\n8.568, 8.201511205\r\n8.874, 8.481656175\r\n9.18, 8.760980495\r\n9.486, 9.039490412\r\n9.792, 9.317192196\r\n10.098, 9.594092142\r\n10.404, 9.870196567\r\n10.71, 10.14551181\r\n11.016, 10.42004423\r\n11.322, 10.69380019\r\n11.628, 10.96678611\r\n11.934, 11.23900837\r\n12.24, 11.51047342\r\n12.546, 11.78118769\r\n12.852, 12.05115763\r\n13.158, 12.32038971\r\n13.464, 12.5888904\r\n13.77, 12.8566662\r\n14.076, 13.12372358\r\n14.382, 13.39006906\r\n14.688, 13.65570916\r\n14.994, 13.92065038\r\n15.3, 14.18489925\r\n15.606, 14.44846229\r\n15.912, 14.71134605\r\n16.218, 14.97355705\r\n16.524, 15.23510184\r\n16.83, 15.49598695\r\n17.136, 15.75621894\r\n17.442, 16.01580433\r\n17.748, 16.27474968\r\n18.054, 16.53306152\r\n18.36, 16.7907464\r\n18.666, 17.04781086\r\n18.972, 17.30426143\r\n19.278, 17.56010466\r\n19.584, 17.81534707\r\n19.89, 18.06999519\r\n20.196, 18.32405554\r\n20.502, 18.57753465\r\n20.808, 18.83043902\r\n21.114, 19.08277518\r\n21.42, 19.33454961\r\n21.726, 19.58576883\r\n22.032, 19.83643931\r\n22.338, 20.08656755\r\n22.644, 20.33616003\r\n22.95, 20.5852232\r\n23.256, 20.83376354\r\n23.562, 21.08178749\r\n23.868, 21.32930151\r\n24.174, 21.57631204\r\n24.48, 21.82282549\r\n24.786, 22.06884829\r\n25.092, 22.31438686\r\n25.398, 22.55944759\r\n25.704, 22.80403687\r\n26.01, 23.0481611\r\n26.316, 23.29182664\r\n26.622, 23.53503986\r\n26.928, 23.7778071\r\n27.234, 24.02013472\r\n27.54, 24.26202905\r\n27.846, 24.50349641\r\n28.152, 24.74454311\r\n28.458, 24.98517546\r\n28.764, 25.22539975\r\n29.07, 25.46522226\r\n29.376, 25.70464927\r\n29.682, 25.94368703\r\n29.988, 26.18234179\r\n30.294, 26.4206198\r\n30.6, 26.65852728\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nSTEER_KIN_TABLE SPLINE\r\n-30.6, -26.65852728\r\n-30.294, -26.4206198\r\n-29.988, -26.18234179\r\n-29.682, -25.94368703\r\n-29.376, -25.70464927\r\n-29.07, -25.46522226\r\n-28.764, -25.22539975\r\n-28.458, -24.98517546\r\n-28.152, -24.74454311\r\n-27.846, -24.50349641\r\n-27.54, -24.26202905\r\n-27.234, -24.02013472\r\n-26.928, -23.7778071\r\n-26.622, -23.53503986\r\n-26.316, -23.29182664\r\n-26.01, -23.0481611\r\n-25.704, -22.80403687\r\n-25.398, -22.55944759\r\n-25.092, -22.31438686\r\n-24.786, -22.06884829\r\n-24.48, -21.82282549\r\n-24.174, -21.57631204\r\n-23.868, -21.32930151\r\n-23.562, -21.08178749\r\n-23.256, -20.83376354\r\n-22.95, -20.5852232\r\n-22.644, -20.33616003\r\n-22.338, -20.08656755\r\n-22.032, -19.83643931\r\n-21.726, -19.58576883\r\n-21.42, -19.33454961\r\n-21.114, -19.08277518\r\n-20.808, -18.83043902\r\n-20.502, -18.57753465\r\n-20.196, -18.32405554\r\n-19.89, -18.06999519\r\n-19.584, -17.81534707\r\n-19.278, -17.56010466\r\n-18.972, -17.30426143\r\n-18.666, -17.04781086\r\n-18.36, -16.7907464\r\n-18.054, -16.53306152\r\n-17.748, -16.27474968\r\n-17.442, -16.01580433\r\n-17.136, -15.75621894\r\n-16.83, -15.49598695\r\n-16.524, -15.23510184\r\n-16.218, -14.97355705\r\n-15.912, -14.71134605\r\n-15.606, -14.44846229\r\n-15.3, -14.18489925\r\n-14.994, -13.92065038\r\n-14.688, -13.65570916\r\n-14.382, -13.39006906\r\n-14.076, -13.12372358\r\n-13.77, -12.8566662\r\n-13.464, -12.5888904\r\n-13.158, -12.32038971\r\n-12.852, -12.05115763\r\n-12.546, -11.78118769\r\n-12.24, -11.51047342\r\n-11.934, -11.23900837\r\n-11.628, -10.96678611\r\n-11.322, -10.69380019\r\n-11.016, -10.42004423\r\n-10.71, -10.14551181\r\n-10.404, -9.870196567\r\n-10.098, -9.594092142\r\n-9.792, -9.317192196\r\n-9.486, -9.039490412\r\n-9.18, -8.760980495\r\n-8.874, -8.481656175\r\n-8.568, -8.201511205\r\n-8.262, -7.920539366\r\n-7.956, -7.638734464\r\n-7.65, -7.356090338\r\n-7.344, -7.072600856\r\n-7.038, -6.788259915\r\n-6.732, -6.503061451\r\n-6.426, -6.216999431\r\n-6.12, -5.930067861\r\n-5.814, -5.642260785\r\n-5.508, -5.353572286\r\n-5.202, -5.06399649\r\n-4.896, -4.773527567\r\n-4.59, -4.482159732\r\n-4.284, -4.189887245\r\n-3.978, -3.89670442\r\n-3.672, -3.602605617\r\n-3.366, -3.307585251\r\n-3.06, -3.011637794\r\n-2.754, -2.714757771\r\n-2.448, -2.416939769\r\n-2.142, -2.118178435\r\n-1.836, -1.818468479\r\n-1.53, -1.517804678\r\n-1.224, -1.216181874\r\n-0.918, -0.913594981\r\n-0.612, -0.610038985\r\n-0.306, -0.305508946\r\n2.20934e-14, 0\r\n0.306, 0.306492635\r\n0.612, 0.613973663\r\n0.918, 0.9224477\r\n1.224, 1.231919277\r\n1.53, 1.542392837\r\n1.836, 1.853872728\r\n2.142, 2.166363208\r\n2.448, 2.479868432\r\n2.754, 2.794392461\r\n3.06, 3.109939249\r\n3.366, 3.426512647\r\n3.672, 3.744116397\r\n3.978, 4.062754131\r\n4.284, 4.382429366\r\n4.59, 4.703145503\r\n4.896, 5.024905823\r\n5.202, 5.347713486\r\n5.508, 5.671571523\r\n5.814, 5.996482841\r\n6.12, 6.322450212\r\n6.426, 6.649476276\r\n6.732, 6.977563533\r\n7.038, 7.306714344\r\n7.344, 7.636930926\r\n7.65, 7.968215349\r\n7.956, 8.300569533\r\n8.262, 8.633995246\r\n8.568, 8.968494097\r\n8.874, 9.304067538\r\n9.18, 9.640716858\r\n9.486, 9.97844318\r\n9.792, 10.31724746\r\n10.098, 10.65713047\r\n10.404, 10.99809284\r\n10.71, 11.34013497\r\n11.016, 11.68325713\r\n11.322, 12.02745937\r\n11.628, 12.37274156\r\n11.934, 12.7191034\r\n12.24, 13.06654437\r\n12.546, 13.41506376\r\n12.852, 13.76466066\r\n13.158, 14.11533397\r\n13.464, 14.46708236\r\n13.77, 14.81990432\r\n14.076, 15.17379809\r\n14.382, 15.52876174\r\n14.688, 15.88479308\r\n14.994, 16.24188972\r\n15.3, 16.60004905\r\n15.606, 16.95926823\r\n15.912, 17.31954418\r\n16.218, 17.6808736\r\n16.524, 18.04325296\r\n16.83, 18.40667849\r\n17.136, 18.77114616\r\n17.442, 19.13665174\r\n17.748, 19.50319072\r\n18.054, 19.87075836\r\n18.36, 20.23934968\r\n18.666, 20.60895943\r\n18.972, 20.97958212\r\n19.278, 21.35121202\r\n19.584, 21.72384311\r\n19.89, 22.09746916\r\n20.196, 22.47208363\r\n20.502, 22.84767977\r\n20.808, 23.22425053\r\n21.114, 23.60178863\r\n21.42, 23.98028649\r\n21.726, 24.35973631\r\n22.032, 24.74013\r\n22.338, 25.1214592\r\n22.644, 25.50371529\r\n22.95, 25.88688939\r\n23.256, 26.27097236\r\n23.562, 26.65595478\r\n23.868, 27.04182696\r\n24.174, 27.42857896\r\n24.48, 27.81620057\r\n24.786, 28.2046813\r\n25.092, 28.59401042\r\n25.398, 28.98417692\r\n25.704, 29.37516952\r\n26.01, 29.76697671\r\n26.316, 30.1595867\r\n26.622, 30.55298743\r\n26.928, 30.9471666\r\n27.234, 31.34211166\r\n27.54, 31.73780979\r\n27.846, 32.13424794\r\n28.152, 32.5314128\r\n28.458, 32.92929081\r\n28.764, 33.32786819\r\n29.07, 33.72713088\r\n29.376, 34.12706463\r\n29.682, 34.52765493\r\n29.988, 34.92888705\r\n30.294, 35.33074603\r\n30.6, 35.73321668\r\nENDTABLE\r\n#RadioCtrl0 1\r\n#RadioCtrl1 1\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Recirc. Ball); { D-Class } D-Class, SUV Recirc. Ball Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Recirc. Ball)\r\n#DataSet : D-Class, SUV Recirc. Ball Kinematics\r\n#Category: D-Class\r\n#FileID  : StrKinAx102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steer kinematics\r\n\r\nENTRY_NOTEFILE Steering\\Kinematics2\\StrKinAx102_note.txt\r\nD-Class SUV Recirculating Ball Kinematics data screen with 11 rows per wheel and Function Type: Spline interpolation and extrapolation.\r\nEXIT_NOTEFILE Steering\\Kinematics2\\StrKinAx102_note.txt\r\n\r\nEXIT_PARSFILE Steering\\Kinematics2\\StrKinAx102.par\r\n\r\n#BlueLink8 Steering System: Kinematics for 2 Wheels (Recirc. Ball)`D-Class, SUV Recirc. Ball Kinematics` D-Class` , Pitman arm to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_TqBoost\\TqBoost101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Torque`200 N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\nTC_BOOST 2\r\n*SCALAR 200\r\n\r\nM_BOOST_G_COEFFICIENT 200\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Torque; 200 N-m\r\n#Library : Steering: Power Assist Torque\r\n#DataSet : 200 N-m\r\n#Category:\r\n#FileID  : TqBoost101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist torque\r\n\r\nEXIT_PARSFILE Steering\\Str_TqBoost\\TqBoost101.par\r\n\r\n#BlueLink17 Steering: Power Assist Torque`200 N-m` ` , Front boost torque\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp105.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`0.002 deg/N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.002\r\n\r\nSTEER_COMP_COEFFICIENT 0.002\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; 0.002 deg/N-m\r\n#Library : Steering System: Compliance\r\n#DataSet : 0.002 deg/N-m\r\n#Category:\r\n#FileID  : StrCmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp105.par\r\n\r\n#BlueLink13 Steering System: Compliance`0.002 deg/N-m` ` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS D-Class } D-Class, SUV: Power, Recirc. Ball\r\n#Library : Steering\r\n#DataSet : D-Class, SUV: Power, Recirc. Ball\r\n#Category: CS D-Class\r\n#FileID  : StrSys2111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2111_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 2600 mm\r\nFront Track =  1565 mm\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2111_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2111.par\r\n\r\n#BlueLink7 Steering`D-Class, SUV: Power, Recirc. Ball` CS D-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS D-Class } D-Class, SUV LEO-defined\r\n#Library : Vehicle: Assembly\r\n#DataSet : D-Class, SUV LEO-defined\r\n#Category: CS D-Class\r\n#FileID  : Vehicle165\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 18:41:30\r\n#VehCode Ind_SA\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle165.par\r\n\r\n#BlueLink2 Vehicle: Assembly`D-Class, SUV LEO-defined` CS D-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc174.par`09-03-2019`18:42:12\r\n#FullDataName Procedures`chapt4_MPC_SSM_PathTracking`BOOK_MPC_Procedures\r\n#CheckBox0 1\r\nOPT_INIT_CONFIG 1\r\n#CheckBox1 1\r\nOPT_INIT_ROAD 1\r\n#CheckBox2 1\r\nOPT_INIT_SPEED 1\r\n#CheckBox3 1\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 65\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 3\r\nSPEED_STATION_CONSTANT 65\r\nENTER_PARSFILE Control\\Driver\\Driver122.par`09-03-2019`18:42:06\r\n#FullDataName Control: Steering by the Closed-loop Driver Model`2 m Right, 1.5 sec. Preview`Constant Position\r\n#RingCtrl0 0\r\n#RingCtrl1 CONSTANT\r\nLTARG_CONSTANT -2.0\r\n#RadioCtrl0 0\r\n\r\nAV_SW_MAX_DM 1200\r\nTLAG_DM 0\r\nA_SW_MAX_DM 720\r\n*TPREV 1.5\r\n*SCALAR -2.0\r\nVLOW_DRIVER 20\r\n\r\n#CheckBox0 0\r\nOPT_DRIVER_MODEL 1\r\n#CheckBox1 0\r\nCREATE_PATH_OBJ off\r\n\r\nTPREV_CONSTANT 1.5\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering by the Closed-loop Driver Model; { Constant Position } 2 m Right, 1.5 sec. Preview\r\n#Library : Control: Steering by the Closed-loop Driver Model\r\n#DataSet : 2 m Right, 1.5 sec. Preview\r\n#Category: Constant Position\r\n#FileID  : Driver122\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-03-2019 18:42:06\r\n#VehCode Driver path follower\r\n\r\nEXIT_PARSFILE Control\\Driver\\Driver122.par\r\n\r\n#BlueLink27 Control: Steering by the Closed-loop Driver Model`2 m Right, 1.5 sec. Preview` Constant Position` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road135.par`09-03-2019`18:38:03\r\n#FullDataName Road: 3D Surface (All Properties)`Alt 3 from FHWA -LEO Flat`Scenic Roads\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.05\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY103.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Alt 3 Road from FHWA`FHWA\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n4.352, -2.462, 5.00013479818\r\n8.704, -4.924, 10.0002695964\r\n13.055, -7.386, 14.9995340423\r\n17.407, -9.848, 19.9996688404\r\n21.759, -12.311, 25.0002961011\r\n26.111, -14.773, 30.0004308993\r\n30.462, -17.235, 34.9996953452\r\n34.814, -19.697, 39.9998301434\r\n39.166, -22.159, 44.9999649415\r\n43.518, -24.621, 50.0000997397\r\n47.87, -27.083, 55.0002345379\r\n52.221, -29.545, 59.9994989838\r\n56.573, -32.008, 65.0001262445\r\n60.925, -34.47, 70.0002610426\r\n65.277, -36.932, 75.0003958408\r\n69.628, -39.394, 79.9996602867\r\n73.98, -41.856, 84.9997950849\r\n78.332, -44.318, 89.9999298831\r\n82.684, -46.78, 95.0000646813\r\n87.036, -49.242, 100.000199479\r\n91.387, -51.704, 104.999463925\r\n95.739, -54.167, 110.000091186\r\n100.091, -56.629, 115.000225984\r\n104.443, -59.091, 120.000360782\r\n108.794, -61.553, 124.999625228\r\n113.146, -64.015, 129.999760026\r\n117.498, -66.477, 134.999894825\r\n121.85, -68.939, 140.000029623\r\n126.202, -71.401, 145.000164421\r\n130.553, -73.864, 149.999921415\r\n134.905, -76.326, 155.000056213\r\n139.257, -78.788, 160.000191011\r\n143.609, -81.25, 165.00032581\r\n147.96, -83.712, 169.999590256\r\n152.312, -86.174, 174.999725054\r\n156.664, -88.636, 179.999859852\r\n161.016, -91.098, 184.99999465\r\n165.368, -93.561, 190.000621911\r\n169.719, -96.023, 194.999886357\r\n174.071, -98.485, 200.000021155\r\n178.423, -100.947, 205.000155953\r\n182.775, -103.409, 210.000290751\r\n187.126, -105.871, 214.999555197\r\n191.478, -108.333, 219.999689995\r\n195.83, -110.795, 224.999824793\r\n200.182, -113.257, 229.999959592\r\n204.534, -115.72, 235.000586852\r\n208.885, -118.182, 239.999851298\r\n213.237, -120.644, 244.999986096\r\n217.589, -123.106, 250.000120895\r\n221.941, -125.568, 255.000255693\r\n226.292, -128.03, 259.999520139\r\n230.644, -130.492, 264.999654937\r\n234.996, -132.954, 269.999789735\r\n239.348, -135.417, 275.000416996\r\n243.7, -137.879, 280.000551794\r\n248.057, -140.33, 284.99963671\r\n252.478, -142.667, 290.000317664\r\n256.971, -144.859, 294.999508898\r\n261.533, -146.906, 299.999714194\r\n266.158, -148.804, 304.999017045\r\n270.842, -150.552, 309.998553024\r\n275.581, -152.148, 314.999086695\r\n280.368, -153.591, 319.99884849\r\n285.199, -154.878, 324.998341464\r\n290.069, -156.009, 329.997947549\r\n294.973, -156.982, 334.997542032\r\n299.906, -157.797, 339.99741343\r\n304.863, -158.452, 344.99750083\r\n309.838, -158.946, 349.996966901\r\n314.827, -159.28, 354.997134598\r\n319.824, -159.453, 359.997128398\r\n324.823, -159.465, 364.996142801\r\n329.821, -159.316, 369.996363296\r\n334.811, -159.005, 374.996045386\r\n339.789, -158.534, 379.996277881\r\n344.748, -157.902, 384.995388302\r\n349.685, -157.111, 389.995353302\r\n354.594, -156.16, 394.995621494\r\n359.469, -155.053, 399.994728815\r\n364.309, -153.795, 404.995545148\r\n369.139, -152.501, 409.995878737\r\n373.968, -151.207, 414.995246397\r\n378.798, -149.913, 419.995579986\r\n383.627, -148.619, 424.994947646\r\n388.457, -147.324, 429.995540111\r\n393.287, -146.03, 434.9958737\r\n398.116, -144.736, 439.99524136\r\n402.946, -143.442, 444.995574949\r\n407.776, -142.148, 449.995908537\r\n412.605, -140.854, 454.995276197\r\n417.435, -139.56, 459.995609786\r\n422.264, -138.266, 464.994977446\r\n427.094, -136.971, 469.995569911\r\n431.924, -135.677, 474.9959035\r\n436.753, -134.383, 479.99527116\r\n441.583, -133.089, 484.995604749\r\n446.413, -131.795, 489.995938338\r\n451.242, -130.501, 494.995305998\r\n456.072, -129.207, 499.995639587\r\n460.901, -127.913, 504.995007247\r\n465.731, -126.618, 509.995599712\r\n470.561, -125.324, 514.995933301\r\n475.39, -124.03, 519.995300961\r\n480.22, -122.736, 524.995634549\r\n485.049, -121.442, 529.995002209\r\n489.879, -120.148, 534.995335798\r\n494.709, -118.854, 539.995669387\r\n499.538, -117.56, 544.995037047\r\n504.386, -116.333, 549.995900273\r\n509.271, -115.268, 554.995645266\r\n514.188, -114.366, 559.994694476\r\n519.133, -113.629, 564.994313861\r\n524.1, -113.057, 569.994141158\r\n529.084, -112.651, 574.994650332\r\n534.078, -112.411, 579.994413927\r\n539.077, -112.338, 584.993946905\r\n544.076, -112.431, 589.993811903\r\n549.069, -112.691, 594.993576798\r\n554.05, -113.118, 599.992845744\r\n559.015, -113.709, 604.992896344\r\n563.957, -114.467, 609.99268914\r\n568.871, -115.388, 614.992252821\r\n573.752, -116.473, 619.992391419\r\n578.594, -117.719, 624.992139412\r\n583.391, -119.127, 629.991506672\r\n588.139, -120.693, 634.991092655\r\n592.833, -122.417, 639.991673821\r\n597.466, -124.296, 644.9912068\r\n602.034, -126.329, 649.991178099\r\n606.531, -128.513, 654.990464549\r\n610.954, -130.845, 659.990579847\r\n615.296, -133.324, 664.990420345\r\n619.553, -135.946, 669.990113635\r\n623.72, -138.708, 674.989366879\r\n627.793, -141.608, 679.989299779\r\n631.767, -144.642, 684.989082974\r\n635.638, -147.806, 689.988636654\r\n639.402, -151.098, 694.98913263\r\n643.053, -154.513, 699.988335166\r\n646.588, -158.049, 704.988287266\r\n650.004, -161.7, 709.988172965\r\n653.296, -165.463, 714.987916258\r\n656.461, -169.333, 719.987328724\r\n659.496, -173.307, 724.987718808\r\n662.396, -177.379, 729.986837131\r\n665.24, -181.491, 734.986525121\r\n668.084, -185.604, 739.987035595\r\n670.928, -189.716, 744.986723585\r\n673.772, -193.829, 749.987234059\r\n676.616, -197.941, 754.986922049\r\n679.459, -202.053, 759.986041272\r\n682.303, -206.166, 764.986551746\r\n685.147, -210.278, 769.986239736\r\n687.991, -214.391, 774.98675021\r\n690.835, -218.503, 779.9864382\r\n693.679, -222.616, 784.986948674\r\n696.523, -226.728, 789.986636664\r\n699.367, -230.84, 794.986324655\r\n702.211, -234.953, 799.986835129\r\n705.055, -239.065, 804.986523119\r\n707.899, -243.178, 809.987033593\r\n710.743, -247.29, 814.986721583\r\n713.647, -251.36, 819.986533179\r\n716.71, -255.312, 824.986560479\r\n719.928, -259.138, 829.985940441\r\n723.297, -262.832, 834.985520123\r\n726.811, -266.388, 839.984853279\r\n730.464, -269.802, 844.984833779\r\n734.251, -273.066, 849.984340254\r\n738.166, -276.176, 854.984272754\r\n742.201, -279.128, 859.983825634\r\n746.352, -281.915, 864.983642631\r\n750.61, -284.535, 869.983139005\r\n754.97, -286.982, 874.982879899\r\n759.425, -289.252, 879.982872399\r\n763.966, -291.343, 884.982168549\r\n768.588, -293.251, 889.982503338\r\n773.282, -294.972, 894.982051017\r\n778.041, -296.504, 899.981561493\r\n782.857, -297.844, 904.980506982\r\n787.724, -298.991, 909.980836771\r\n792.632, -299.942, 914.98012322\r\n797.575, -300.697, 919.98045061\r\n802.543, -301.253, 924.979466513\r\n807.53, -301.61, 929.979228307\r\n812.527, -301.767, 934.978694079\r\n817.527, -301.724, 939.978878975\r\n822.521, -301.481, 944.978787474\r\n827.501, -301.039, 949.978363856\r\n832.459, -300.398, 954.977628302\r\n837.388, -299.559, 959.977524501\r\n842.279, -298.524, 964.976835054\r\n847.125, -297.294, 969.976496642\r\n851.918, -295.871, 974.976274437\r\n856.65, -294.258, 979.975633696\r\n861.314, -292.457, 984.975283384\r\n865.905, -290.475, 989.975843853\r\n870.473, -288.442, 994.975815152\r\n875.041, -286.408, 999.976193138\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; { FHWA } Alt 3 Road from FHWA\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Alt 3 Road from FHWA\r\n#Category: FHWA\r\n#FileID  : RoadXY103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY103.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Alt 3 Road from FHWA` FHWA` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp116.par`08-02-2011`16:43:14\r\n#FullDataName Road: Animator Surface Shapes`Alt 3 FHWA Road`Scenic Road Shapes\r\nNLANES 5\r\nOPTTHRESHOLD 1\r\n#MiscYellow0\r\n# 0.878 0.878 0.878, Road (Medium), 0.2, 50, 1, -5, m, 5, m, 5, , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 50, 1, 5, m, 7.1, m, 1, , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 50, 3.1, -7.1, m, -100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Grass (Light), 0.1, 50, 3.1, 7.1, m, 100, m, , , -100, 1200, 5, , ,\r\n# 0.878 0.878 0.878, Road Transition (Light), 0.1, 50, -1, -5, m, -7.1, m, 1, , -100, 1200, 5, , ,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.878 0.878 0.878\r\nMATERIAL(1) Road (Medium)\r\nSPECULAR(1) 0.2\r\nSCALE(1) 50\r\nLTILES(1) 1\r\nLIN(1) -5\r\nLINUNITS(1) m\r\nLOUT(1) 5\r\nLOUTUNITS(1) m\r\nLDIV(1) 5\r\nSSTART(1) -100\r\nSSTOP(1) 1200\r\nSINT(1) 5\r\nCOLOR(2) 0.878 0.878 0.878\r\nMATERIAL(2) Road Transition (Light)\r\nSPECULAR(2) 0.1\r\nSCALE(2) 50\r\nLTILES(2) 1\r\nLIN(2) 5\r\nLINUNITS(2) m\r\nLOUT(2) 7.1\r\nLOUTUNITS(2) m\r\nLDIV(2) 1\r\nSSTART(2) -100\r\nSSTOP(2) 1200\r\nSINT(2) 5\r\nCOLOR(3) 0.878 0.878 0.878\r\nMATERIAL(3) Grass (Light)\r\nSPECULAR(3) 0.1\r\nSCALE(3) 50\r\nLTILES(3) 3.1\r\nLIN(3) -7.1\r\nLINUNITS(3) m\r\nLOUT(3) -100\r\nLOUTUNITS(3) m\r\nSSTART(3) -100\r\nSSTOP(3) 1200\r\nSINT(3) 5\r\nCOLOR(4) 0.878 0.878 0.878\r\nMATERIAL(4) Grass (Light)\r\nSPECULAR(4) 0.1\r\nSCALE(4) 50\r\nLTILES(4) 3.1\r\nLIN(4) 7.1\r\nLINUNITS(4) m\r\nLOUT(4) 100\r\nLOUTUNITS(4) m\r\nSSTART(4) -100\r\nSSTOP(4) 1200\r\nSINT(4) 5\r\nCOLOR(5) 0.878 0.878 0.878\r\nMATERIAL(5) Road Transition (Light)\r\nSPECULAR(5) 0.1\r\nSCALE(5) 50\r\nLTILES(5) -1\r\nLIN(5) -5\r\nLINUNITS(5) m\r\nLOUT(5) -7.1\r\nLOUTUNITS(5) m\r\nLDIV(5) 1\r\nSSTART(5) -100\r\nSSTOP(5) 1200\r\nSINT(5) 5\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { Scenic Road Shapes } Alt 3 FHWA Road\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : Alt 3 FHWA Road\r\n#Category: Scenic Road Shapes\r\n#FileID  : RdShp116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:14\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp116.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`Alt 3 FHWA Road` Scenic Road Shapes` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Roads\\AniGroup\\RdAniGrp109.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Repeated Object`Trees 2`Trees\r\n#RingCtrl0 2\r\n#RingCtrl1 0\r\n#DiagramOne0\r\n*POINTS_table\r\n0, -10\r\n30, 10\r\n90, -10\r\n120, 10\r\n150, -10\r\n180, 10\r\n210, -10\r\n240, 10\r\n270, -10\r\n300, 10\r\n330, -10\r\n360, 10\r\n390, -10\r\n420, 10\r\n450, -10\r\n480, 10\r\n510, -10\r\n540, 10\r\n570, -10\r\n600, 10\r\n630, -10\r\n660, 10\r\n690, -10\r\n720, 10\r\n750, -10\r\n780, 10\r\n810, -10\r\n840, 10\r\n870, -10\r\n900, 10\r\n930, -10\r\n960, 10\r\n990, -10\r\n1020, 10\r\n1050, -10\r\n1080, 10\r\n1100, -10\r\n1130, 10\r\n1160, -10\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n#BlueLink0 Animator: Shape Assembly`Tree` Scenery` , Animator group\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Repeated Object; { Trees } Trees 2\r\n#Library : Road: Animator Repeated Object\r\n#DataSet : Trees 2\r\n#Category: Trees\r\n#FileID  : RdAniGrp109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road Animator Group\r\n\r\nEXIT_PARSFILE Roads\\AniGroup\\RdAniGrp109.par\r\n\r\n#BlueLink6 Road: Animator Repeated Object`Trees 2` Trees` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink7 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Roads\\AniGroup\\RdAniGrp110.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Repeated Object`S-curve (5.5 m)`\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n#DiagramOne0\r\n*POINTS_table\r\n200, -5.5\r\n800, -5.5\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n#BlueLink0 Animator: Shape File Link`S-Curve` Signs` , Animator group\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Repeated Object; S-curve (5.5 m)\r\n#Library : Road: Animator Repeated Object\r\n#DataSet : S-curve (5.5 m)\r\n#Category:\r\n#FileID  : RdAniGrp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road Animator Group\r\n\r\nEXIT_PARSFILE Roads\\AniGroup\\RdAniGrp110.par\r\n\r\n#BlueLink8 Road: Animator Repeated Object`S-curve (5.5 m)` ` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Roads\\AniGroup\\RdAniGrp111.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Repeated Object`Speed Limit 70 (5.5 m)`\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n#DiagramOne0\r\n*POINTS_table\r\n400, -5.5\r\n1000, -5.5\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n#BlueLink0 Animator: Shape File Link`Speed Limit 70` Signs` , Animator group\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Repeated Object; Speed Limit 70 (5.5 m)\r\n#Library : Road: Animator Repeated Object\r\n#DataSet : Speed Limit 70 (5.5 m)\r\n#Category:\r\n#FileID  : RdAniGrp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road Animator Group\r\n\r\nEXIT_PARSFILE Roads\\AniGroup\\RdAniGrp111.par\r\n\r\n#BlueLink9 Road: Animator Repeated Object`Speed Limit 70 (5.5 m)` ` , Misc. animator set\r\n\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road135.ani`09-03-2019`18:38:03\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road135_1.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.2 0.2 0.2\r\n\r\nadd_obj Roads\\3D_Road\\Road135_2.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road135_3.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road135_4.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road135_5.obj\r\nset_color 0.878 0.878 0.878\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road135.ani\r\n\r\n\r\nadd_reference_frame road_stuff_1_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.4975751915\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x -4.92386725433\r\nset_offset_var_y -8.70376534965\r\nset_offset_var_z 0\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup103.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Tree`Scenery\r\n*ANGLE_Z 180\r\n*ANGLE_Y 0\r\n*ANGLE_X 0\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 0\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 1\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL118.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Tree`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\tree1.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 0.3\r\nSET_SCALE_Y 0.3\r\nSET_SCALE_Z 0.5\r\n*SPECULAR 0.5\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Tree\r\n#Library : Animator: Shape File Link\r\n#DataSet : Tree\r\n#Category: Trees\r\n#FileID  : AniSTL118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL118.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Tree` Trees` , Shape File\r\n\r\n#MiscYellow0\r\ntranslucent_fix on\r\n#ENDMYellow\r\n\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL119.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Tree, 90`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\tree1.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 0.3\r\nSET_SCALE_Y 0.3\r\nSET_SCALE_Z 0.5\r\nSET_ANGLE_Z 90\r\nSET_ANGLE_Y 0\r\nSET_ANGLE_X 0\r\n*SPECULAR 0.5\r\n#RingCtrl0 obj\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Tree, 90\r\n#Library : Animator: Shape File Link\r\n#DataSet : Tree, 90\r\n#Category: Trees\r\n#FileID  : AniSTL119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL119.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Tree, 90` Trees` , Shape File\r\n\r\ntranslucent_fix on\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL120.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Mulch (Standard)`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\mulch.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.502 0.502 0.502\r\nSET_SCALE_X 0.5\r\nSET_SCALE_Y 0.5\r\nSET_SCALE_Z 0.5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z -0.05\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 40\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Mulch (Standard)\r\n#Library : Animator: Shape File Link\r\n#DataSet : Mulch (Standard)\r\n#Category: Trees\r\n#FileID  : AniSTL120\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL120.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Mulch (Standard)` Trees` , Shape File\r\n\r\ntranslucent_fix on\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL121.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Tree Shadow (Standard)`Trees\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\trees_bushes\\tree_shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 0.3\r\nSET_SCALE_Y 0.3\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.05\r\n*TRANSPARENCY 0.3\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.3\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Trees } Tree Shadow (Standard)\r\n#Library : Animator: Shape File Link\r\n#DataSet : Tree Shadow (Standard)\r\n#Category: Trees\r\n#FileID  : AniSTL121\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL121.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Tree Shadow (Standard)` Trees` , Shape File\r\n\r\ntranslucent_fix on\r\nset_lighting off\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Scenery } Tree\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Tree\r\n#Category: Scenery\r\n#FileID  : StlGroup103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup103.par\r\n\r\n\r\nadd_reference_frame road_stuff_2_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.500613751\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 31.0349208697\r\nset_offset_var_y -6.0692649658\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_3_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.497961224\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 73.4081937736\r\nset_offset_var_y -53.0217998747\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_4_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.498476304\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 109.366981844\r\nset_offset_var_y -50.3872994471\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_5_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.5074014665\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 125.628014981\r\nset_offset_var_y -82.5671330269\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_6_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.503600257\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 161.587989259\r\nset_offset_var_y -79.9323036669\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_7_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.501143793\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 177.850451092\r\nset_offset_var_y -112.112379706\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_8_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 150.500610543\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 213.809425291\r\nset_offset_var_y -109.478550346\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_9_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -29.5098319137\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 230.071558273\r\nset_offset_var_y -141.657440412\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_10_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 156.760153798\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 265.47945892\r\nset_offset_var_y -137.716242952\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_11_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -12.1477034826\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 287.966418147\r\nset_offset_var_y -165.786793332\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_12_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 178.942061612\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 320.011736291\r\nset_offset_var_y -149.453468002\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_13_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 10.0430782806\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 351.43228303\r\nset_offset_var_y -166.958502448\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_14_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 194.997837117\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 376.214191279\r\nset_offset_var_y -140.252567826\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_15_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 14.9998974517\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 410.368029396\r\nset_offset_var_y -151.806229631\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_16_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 195.00031918\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 434.169490593\r\nset_offset_var_y -124.722487425\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_17_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 15.0037823302\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 468.324009943\r\nset_offset_var_y -136.275966613\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_18_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 195.052583987\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 492.125162719\r\nset_offset_var_y -109.193571197\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_19_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 5.61126022192\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 525.083691628\r\nset_offset_var_y -123.009894153\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_20_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 174.15608175\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 555.075922838\r\nset_offset_var_y -103.169404641\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_21_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -17.3112596114\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 580.423449027\r\nset_offset_var_y -128.677963631\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_22_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 151.235945449\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 615.775184656\r\nset_offset_var_y -122.082337986\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_23_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -40.2201854838\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 629.1883514\r\nset_offset_var_y -155.449934504\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_24_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 128.34613398\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 664.315692954\r\nset_offset_var_y -163.141753321\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_25_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -55.3330520183\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 665.554424194\r\nset_offset_var_y -199.527386275\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_26_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 124.666102396\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 699.067550628\r\nset_offset_var_y -212.826267143\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_27_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -55.3841095335\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 699.681638019\r\nset_offset_var_y -248.876715674\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_28_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 135.803113044\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 733.794212799\r\nset_offset_var_y -259.227416025\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_29_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -30.4512038048\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 745.556277667\r\nset_offset_var_y -293.166340772\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_30_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 163.312631513\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 780.930822282\r\nset_offset_var_y -286.928573438\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_31_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw -2.93788090212\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 807.038162824\r\nset_offset_var_y -311.599896155\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_32_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 190.814286058\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 835.533405976\r\nset_offset_var_y -289.73046457\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_33_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 23.9054324885\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 869.942249998\r\nset_offset_var_y -299.623898168\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_34_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 204.002045021\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 889.265674604\r\nset_offset_var_y -269.127621716\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_35_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 24.0020450214\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 924.806987782\r\nset_offset_var_y -275.195163027\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_36_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 204.002045021\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 944.077530984\r\nset_offset_var_y -244.721466751\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_37_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 24.0020450214\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 970.483534766\r\nset_offset_var_y -254.856700557\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_38_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 204.002045021\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 989.754077968\r\nset_offset_var_y -224.383004281\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_39_1\r\nreference_frame_ghosts off\r\nset_offset_var_yaw 24.0020450214\r\nset_offset_var_pitch 0\r\nset_offset_var_roll 0\r\nset_offset_var_x 1025.29539115\r\nset_offset_var_y -230.450545592\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_1_3\r\nreference_frame_ghosts off\r\nset_offset_var_x 171.362854596\r\nset_offset_var_y -103.272060525\r\nset_offset_var_z 0\r\nENTER_PARSFILE Animator\\STL\\AniSTL252.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`S-Curve`Signs\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\road_signs\\s_curve_car\\s_curve_car.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_ANGLE_Z 180\r\nSET_ANGLE_Y 0\r\nSET_ANGLE_X 0\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Signs } S-Curve\r\n#Library : Animator: Shape File Link\r\n#DataSet : S-Curve\r\n#Category: Signs\r\n#FileID  : AniSTL252\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL252.par\r\n\r\n\r\nadd_reference_frame road_stuff_2_3\r\nreference_frame_ghosts off\r\nset_offset_var_x 697.694827215\r\nset_offset_var_y -238.092166248\r\nset_offset_var_z 0\r\n\r\nadd_reference_frame road_stuff_1_4\r\nreference_frame_ghosts off\r\nset_offset_var_x 360.775284314\r\nset_offset_var_y -160.396291356\r\nset_offset_var_z 0\r\nENTER_PARSFILE Animator\\STL\\AniSTL253.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Speed Limit 70`Signs\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\road_signs\\speed_limit\\speed_limit_70.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_ANGLE_Z 90\r\nSET_ANGLE_Y 0\r\nSET_ANGLE_X 0\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 45\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Signs } Speed Limit 70\r\n#Library : Animator: Shape File Link\r\n#DataSet : Speed Limit 70\r\n#Category: Signs\r\n#FileID  : AniSTL253\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL253.par\r\n\r\n\r\nadd_reference_frame road_stuff_2_4\r\nreference_frame_ghosts off\r\nset_offset_var_x 877.299979177\r\nset_offset_var_y -291.422736269\r\nset_offset_var_z 0\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { Scenic Roads } Alt 3 from FHWA -LEO Flat\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : Alt 3 from FHWA -LEO Flat\r\n#Category: Scenic Roads\r\n#FileID  : Road135\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-03-2019 18:38:03\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road135.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`Alt 3 from FHWA -LEO Flat` Scenic Roads` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } chapt4_MPC_SSM_PathTracking\r\n#Library : Procedures\r\n#DataSet : chapt4_MPC_SSM_PathTracking\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc174\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-03-2019 18:42:12\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc174.par\r\n\r\n#BlueLink28 Procedures`chapt4_MPC_SSM_PathTracking` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter4_MPC_SSM_PathTracking <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter4_MPC_SSM_PathTracking\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter4_MPC_SSM_PathTracking\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter4_MPC_SSM_PathTracking\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run290\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 09-01-2019 23:30:22\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run290.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/MPC_SSM_CurvePathTracking.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"MPC_SSM_CurvePathTracking\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.220\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"CurvePathTracking\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [747.0, 133.0, 1036.0, 764.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[986.0, 587.0]\r\n\tZoomFactor\t\t[1.5]\r\n\tOffset\t\t\t[21.180952380951624, 169.33333333333343]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sun Sep 01 23:43:46 2019\"\r\n  RTWModifiedTimeStamp\t  489282213\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:220>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"MPC_SSM_CurvePathTracking\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"MPC_SSM_CurvePathTracking\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"400\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"MPC_SSM_CurvePathTracking\"\r\n    Location\t\t    [747, 133, 1783, 897]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"150\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"140\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [330, 179, 430, 241]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_MPC_EM_PathTrackingCtrl.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"135\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [170, 361, 180, 439]\r\n      ZOrder\t\t      30\r\n      BlockMirror\t      on\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[1 7]\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [245, 366, 515, 434]\r\n      ZOrder\t\t      12\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_CurvePathTracking_CVXGEN_CurveLane\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"136\"\r\n      Position\t\t      [95, 405, 130, 435]\r\n      ZOrder\t\t      31\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [230, 295, 290, 325]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      116\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [117, 0; 0, 190]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      130\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-31, 0]\r\n      Branch {\r\n\tZOrder\t\t\t177\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t176\r\n\tPoints\t\t\t[0, -90]\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      178\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      188\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-17, 0; 0, -170]\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/Main_CurvePathTracking_CVXGEN_CurveLane.m",
    "content": "function [sys,x0,str,ts] =Main_CurvePathTracking_CVXGEN_CurveLane(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for safe driving\r\n% envelope control of high speed autonomous vehicle\r\n% Linearized spatial bicycle vehicle dynamic model is applied.\r\n% No successive linearizarion. No two time scale of prediction horizon\r\n% Constant high speed, curve path tracking \r\n% state vector =[beta,yawrate,e_phi,s,e_y]\r\n% control input = [steer_SW]\r\n% many other parameters are also outputed for comparision.\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 3;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 8;  %S\r\nsizes.NumInputs      = 7; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; \r\n    VehiclePara.m  = 1540;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g  = 9.8;\r\n    VehiclePara.Lf = 1.11;  %a\r\n    VehiclePara.Lr = 1.67;  %bǰ־복ĵľ룬в\r\n    VehiclePara.L  = 2.78;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Lc = 1.59;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.I  = 2315.3;   %IΪZתв\r\n    VehiclePara.mu = 1.0; % 0.55; %Ħ\r\n    VehiclePara.Radius = 0.261;  % ̥뾶\r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 40;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ts  = 0.05; %Set the sample time of near term \r\n    MPCParameters.Nx  = 3; %the number of state variables\r\n    MPCParameters.Ny  = 3; %the number of output variables      \r\n    MPCParameters.Nu  = 2; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Q   = [ 10      0       0;\r\n                        0      10       0;\r\n                        0      0       10];  %state vector =[beta,yawrate,e_phi,s,e_y]\r\n \r\n    CostWeights.R   = 10000; % on Du\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.08;      % Units: rad  \r\n    Constraints.umax    = 0.4;      % Units: rad appro.23deg\r\n    \r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n    Reftraj = load('WayPoints_Alt3fromFHWA_Overall.mat');\r\n%     Local_reftraj = load('WayPoints_Alt3fromFHWA_Portion.mat');    \r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\n\r\nCtrl_SteerSW    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\n\r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n%***********Step (2). State estimation and Location **********************% \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured] = func_StateEstimation(u); %uSģ\r\n    Vel     = VehStateMeasured.Vx;     \r\n    PosX    = VehStateMeasured.Xc;\r\n    PosY    = VehStateMeasured.Yc;\r\n    PosPsi  = VehStateMeasured.psi;    \r\n    Ax      = VehStateMeasured.Ax;\r\n    fwa     = VehStateMeasured.fwa;    \r\n\r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    % Local vehicle coordinates, y=K[3]x^3 + K[2]x^2 + K[1]x +K[0].\r\n    [PrjP, RefP, RefU, WPIndex] = func_RefTraj_LocalPlanning( MPCParameters, WayPoints_IndexPre, Reftraj.WayPoints_Collect, VehStateMeasured ); % reference path is a straight line\r\n    if ( WPIndex <= 0)\r\n        %\r\n    else\r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  MPC formulation;********************%\r\n    %----Update  An, Al, B, dn,dl of the StateSpaceModel\r\n    [StateSpaceModel] = func_StateSpaceModel_StraightLane(VehiclePara, MPCParameters,  PrjP ); \r\n    Xm = [PosX; PosY; PosPsi];\r\n    \r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.xm       = Xm;\r\n    params.um       = fwa; % measured front whee angle\r\n    params.Pxr      = [PrjP.xr; PrjP.yr; PrjP.psir];\r\n    params.Pur      = PrjP.fwar;\r\n    params.An       = StateSpaceModel.An;\r\n    params.Bn       = StateSpaceModel.Bn;\r\n    params.Q        = CostWeights.Q;  \r\n    params.R\t    = CostWeights.R;\r\n    params.umax     = Constraints.umax;\r\n    params.dumax    = Constraints.dumax; \r\n    params.RefP     = RefP; \r\n    params.RefU     = RefU;  \r\n   \r\n    t_Start = tic; % ʼʱ  \r\n    [vars, status] = csolve_StraightLane(params, settings);\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0;          \r\n%         ah_des  = vars.u_0(2); \r\n    else\r\n        fwa_opt =  0;\r\n        fprintf('CVXGEN converged = 0 \\n');                  \r\n    end\r\n    \r\n    %====================================================================%\r\n    Ctrl_SteerSW0 = 19 * fwa_opt*180/pi; % in deg.    \r\n%     [Throttle, Brake] = func_AccelerationTrackingController(ah_opt);\r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n     %---4.Publish command********************%\r\n    Ctrl_SteerSW = round(10*Ctrl_SteerSW0)/10;\r\n    e_y            = PrjP.ey;\r\n    e_psi          = PrjP.epsi;   \r\nend % end of if Initialflag < 2 % \r\n\r\n   \r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Vel; e_psi; e_y];     \r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    VehStatemeasured.Vx      = ModelInput(1)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.Xc      = round(100*ModelInput(2))/100;%λΪm, 2λС\r\n    VehStatemeasured.Yc      = round(100*ModelInput(3))/100;%λΪm, 2λС    \r\n    VehStatemeasured.psi     = (round(100*ModelInput(4))/100)*pi/180; %ǣUnitdeg-->rad2λС    \r\n    VehStatemeasured.Ax      = 9.8*ModelInput(5);%λΪm/s^2, 2λС\r\n    VehStatemeasured.fwa     = (round(10*0.5*(ModelInput(6)+ ModelInput(7)))/10)*pi/180; % deg-->rad   \r\n    \r\n% end % end of func_StateEstimation\r\n\r\n%***************************************************************%\r\n% Augmented vehicle state space model\r\n%***************************************************************%\r\nfunction [StateSpaceModel] = func_StateSpaceModel_StraightLane(VehiclePara, MPCParameters, PrjP)\r\n    % generate State-space model\r\n    L       = VehiclePara.L;  %a = 1.11;  \r\n    Ts      = MPCParameters.Ts;\r\n    Nx      = MPCParameters.Nx;\r\n    Velr    = PrjP.Velr;    \r\n    xr      = PrjP.xr;\r\n    yr      = PrjP.yr;\r\n    psir    = PrjP.psir;  \r\n    fwar    = PrjP.fwar; \r\n   \r\n    \r\n    Acn = [0,        0,        -Velr*sin(psir);\r\n           0,        0,        Velr*cos(psir);\r\n           0,        0,        0];\r\n      \r\n    Bcn = [0,       0,     Velr/(L*cos(fwar)*cos(fwar))]';%\r\n   \r\n    % SSM discretization for the near term\r\n    Adn = eye(Nx) + Ts*Acn;\r\n    Bdn = Ts*Bcn;\r\n \r\n    StateSpaceModel.An = Adn;\r\n    StateSpaceModel.Bn = Bdn; \r\n                        \r\n% end % end of func_SpatialDynamicalModel\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/ReadMe",
    "content": "MPC for path tracking use SSM\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/func_CalPathCurve.m",
    "content": "function K=func_CalPathCurve(XA,YA,XB,YB,XC,YC)\r\n%%\r\n%б\r\nif XB==XA\r\n    mr=inf;\r\nelse\r\n    mr=(YB-YA)/(XB-XA);    \r\nend\r\nif XC==XB\r\n    mt=inf;\r\nelse\r\n    mt=(YC-YB)/(XC-XB);    \r\nend\r\n\r\n%% Ĵ߼ԣ׳\r\n%ݲͬб,mtdao=1/mt;mrsubmt=1/(2*(mr-mt));\r\nif mr==mt\r\n    Rff=inf;\r\nelse if mt==0\r\n        if mr==inf\r\n            Rff=sqrt(power((XA-XC),2)+power((YA-YC),2))/2;\r\n        else\r\n            mrsubmt=1/(2*(mr-mt));\r\n            Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n            Yff=(YB+YA)/2-(Xff-(XB+XA)/2)/mr;\r\n            Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));           \r\n        end\r\n    elseif mt==inf\r\n        if mr==0\r\n            Rff=sqrt(power((XA-XC),2)+power((YA-YC),2))/2;\r\n        else\r\n            Yff=(YB+YC)/2;\r\n            Xff=(XA+XB)/2-mr*(YC-YA)/2;\r\n            Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));     \r\n        end        \r\n    else\r\n        mtdao=1/mt;\r\n        if mr==0\r\n            mrsubmt=1/(2*(mr-mt));\r\n            Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n            Yff=(YB+YC)/2-mtdao*(Xff-(XB+XC)/2);\r\n            Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));            \r\n        elseif mr==inf\r\n            Yff=(YA+YB)/2;\r\n            Xff=(XB+XC)/2+mt*(YA-YC)/2;\r\n            Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));\r\n        else\r\n            mrsubmt=1/(2*(mr-mt));\r\n            Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n            Yff=(YB+YC)/2-mtdao*(Xff-(XB+XC)/2);\r\n            Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));  \r\n        end\r\n    end    \r\nend\r\n%%\r\n    %ͨжϺǵı仯жʵ\r\n    K1=GetPathHeading(XA,YA,XB,YB);\r\n    K2=GetPathHeading(XB,YB,XC,YC);\r\n    if K2>K1 %нǱʱ\r\n        Rff=Rff;\r\n    else %нǱС˳ʱ룬K2<K1\r\n        Rff=-1*Rff;\r\n    end\r\n    \r\n    K = 1/Rff;\r\nend\r\n\r\n\r\nfunction K=GetPathHeading(Xb,Yb,Xn,Yn)\r\n    AngleY=Yn-Yb;\r\n    AngleX=Xn-Xb;\r\n\r\n%% \r\n    %***Heading Angle 0~2*pi֮ *******%\r\n    if Xb==Xn\r\n        if Yn>Yb\r\n            K=pi/2;\r\n        else\r\n            K=3*pi/2;\r\n        end\r\n    else\r\n        if Yb==Yn\r\n            if Xn>Xb\r\n                K=0;\r\n            else\r\n                K=pi;\r\n            end\r\n        else\r\n            K=atan(AngleY/AngleX);\r\n        end    \r\n    end\r\n\r\n%****K,ʹ֮0~360֮*****%\r\n   if (AngleY>0&&AngleX>0)%һ\r\n        K=K;\r\n    elseif (AngleY>0&&AngleX<0)||(AngleY<0&&AngleX<0)%ڶ\r\n        K=K+pi;\r\n    else if (AngleY<0&&AngleX>0)%\r\n            K=K+2*pi;  \r\n        else\r\n            K=K;\r\n        end\r\n   end\r\n    \r\nend % end of function\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/func_FindBezierControlPointsND.m",
    "content": "% INPUT\r\n% Data: A set of \"n\" points (p1,p2,...pn).\r\n% Each point can be in N-dimension vector space\r\n% % (i.e. points to be approximated by Cubic Bezier Curve\r\n%       e.g. p for 3D p=[0   5   0;      % p1\r\n%                        1   5   0.5;    % p2\r\n%                        1.3 4.5 1;      % p3\r\n%                        2   5   2]      % p4\r\n% ptype(optional arg): parameterization type, defualt is chord-length\r\n% parameterization. user can pass 'u' or 'uniform', for uniform parameterization.\r\n\r\n% OUTPUT\r\n% Four Control Points: P0, P1, P2, P3, each in N-dimension space\r\n%  parameterized values i.e. t (optional)\r\n\r\n% OBJECTIVE\r\n% We want to find control points of Bezier Curve that fit the data\r\n% p.\r\n\r\n% SOLUTION\r\n% Least Square Method using specified Parameterization (Chord-length\r\n% defualt)\r\n% (P0 & P3) are end points of a bezier curve segment. So they\r\n% are taken equal to first and last point of data. \r\n% (P1 & P2) are obtained by partially differeciating the Sum of Square\r\n% distance between original data and parametric curve w.r.t P1 & P2 and then\r\n% solving for two unknowns P1 & P2.\r\n\r\nfunction [P0, P1, P2, P3, tout]= func_FindBezierControlPointsND(p,varargin)\r\n\r\n%%% Default Values %%%\r\nptype='';\r\ndefaultValues = {ptype};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[ptype] = deal(defaultValues{:});\r\n%%%------------------------------\r\n\r\nn=size(p,1);              % number of rows in p\r\n\r\nif (strcmpi(ptype,'u') || strcmpi(ptype,'uniform') )\r\n    [t]=linspace(0,1,n);      % uniform parameterized values (normalized b/w 0 to 1)\r\nelse\r\n    [t]=ChordLengthNormND(p); % chord-length parameterized values (normalized b/w 0 to 1)\r\nend\r\n\r\nP0=p(1,:);       % (at t=0 => P0=p1)\r\nP3=p(n,:);       % (at t=1 => P3=pn)\r\n\r\nif (n==1)      % if only one value in p\r\n   P1=P0;      % P1=P0\r\n   P2=P0;      % P2=P0\r\n   \r\nelseif (n==2)  % if only two values in p\r\n   P1=P0;      % P1=P0\r\n   P2=P3;      % P2=P3\r\n   \r\nelseif (n==3)  % if only three values in p\r\n   P1=p(2,:);    % middle point is P1\r\n   P2=p(2,:);    % middle point is P2\r\n\r\nelse\r\n    \r\n   A1=0;\tA2=0;\tA12=0;\tC1=0;\tC2=0; %initialization\r\n    for i=2:n-1 \r\n%    for i=1:n    %it will give same CPs as   i=2:n-1   \r\n      B0 = (1-t(i))^3            ;        % Bezeir Basis\r\n      B1 = ( 3*t(i)*(1-t(i))^2 ) ;\r\n      B2 = ( 3*t(i)^2*(1-t(i)) ) ;\r\n      B3 = t(i)^3                ;\r\n      \r\n      A1  = A1 +  B1^2;\r\n      A2  = A2 +  B2^2;\r\n      A12 = A12 + B1*B2;\r\n      C1 = C1 + B1*( p(i,:) - B0*P0 - B3*P3 );\r\n      C2 = C2 + B2*( p(i,:) - B0*P0 - B3*P3 );\r\n      \r\n   end\r\n   \r\n   DENOM=(A1*A2-A12*A12);       % common denominator for all points\r\n   if(DENOM==0)\r\n       P1=P0;\r\n       P2=P3;\r\n   else\r\n       P1=(A2*C1-A12*C2)/DENOM;\r\n       P2=(A1*C2-A12*C1)/DENOM;\r\n   end\r\n   \r\nend            % END of if-elseif-else conditon\r\n\r\nif(nargout==5) % if number of output argument=1 \r\n    tout=t;\r\nend\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/func_GetProjectPoint.m",
    "content": "function [PPx,PPy,de]=func_GetProjectPoint(Xb,Yb,Xn,Yn,Xc,Yc)\r\nif Xn==Xb\r\n    x=Xn;\r\n    y=Yc;\r\n    de=Xc-Xn;\r\nelse if Yb==Yn\r\n        x=Xc;\r\n        y=Yn;\r\n        de=Yn-Yc;\r\n    else\r\n        DifX=Xn-Xb;\r\n        DifY=Yn-Yb;\r\n        Kindex=DifY/DifX;\r\n        bindex=Yn-Kindex*Xn;\r\n        K=(-1)*1/Kindex;\r\n        b=Yc-K*Xc;\r\n        x=(bindex-b)/(K-Kindex);\r\n        y=K*x+b;\r\n        de=(Kindex*Xc+bindex-Yc)/sqrt(1+Kindex*Kindex);\r\n    end     \r\nend\r\nPPx=x;\r\nPPy=y;\r\nend"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/func_RefTraj_LocalPlanning.m",
    "content": "function [PrjP, RefP, RefU, WPIndex ] = func_RefTraj_LocalPlanning( MPCParameters, WayPoints_Index, WayPoints_Collect, VehStateMeasured)\r\n%***************************************************************%\r\n%  \r\n% Input:\r\n% MPCParameters\r\n% WayPoints_Index\r\n% WayPoints_Collect\r\n% VehStateMeasured\r\n% \r\n% Output:\r\n% WPIndex \r\n%     > 0Normal, WPIndex = index_min;\r\n%     0:error,index_min<1\r\n%     -1: index_min = WPNum,ȫ·ľͷͣ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT \r\n%***************************************************************%\r\n\r\n%*********** Parameters Initialization *************************% \r\n    L       = 2.78;\r\n    Np      = MPCParameters.Np;\r\n    Ts      = MPCParameters.Ts;\r\n    %------Measured or Estimated vehicle status\r\n    Vel     = VehStateMeasured.Vx;   % 20; % \r\n    PosX    = VehStateMeasured.Xc;\r\n    PosY    = VehStateMeasured.Yc;\r\n    PosPsi  = VehStateMeasured.psi;            \r\n    Ax      = VehStateMeasured.Ax;\r\n    fwa     = VehStateMeasured.fwa; \r\n    \r\n    RefP    = cell(Np,1); \r\n    RefU    = cell(Np,1);   \r\n%*********** WaypointData2VehicleCoords ************************% \r\n    WPNum       = length(WayPoints_Collect(:,1));\r\n    \r\n    %--------ҵο·Ͼ복ĵ--------------------------%  \r\n    Dist_MIN    = 1000;\r\n    index_min   = 0;\r\n    for i=WayPoints_Index:1:WPNum \r\n        deltax  = WayPoints_Collect(i,2) - PosX;\r\n        deltay  = WayPoints_Collect(i,3) - PosY;\r\n        Dist    = sqrt(power(deltax,2) + power(deltay,2)); %·㵽ĵľ\r\n        if Dist < Dist_MIN\r\n            Dist_MIN = Dist; \r\n            index_min = i;\r\n        end\r\n    end\r\n    if (index_min < 1) \r\n        WPIndex = -1; %ûҵ򡣡\r\n    else if ( index_min >= WPNum)\r\n            WPIndex = -2; %ûҵ򡣡\r\n        else\r\n            WPIndex = index_min;\r\n        end\r\n    end\r\n    \r\n    \r\n    if( WPIndex > 0 )   % ҵ\r\n        %--------------ͨͶӰ--------------------------%\r\n        [PPx,PPy,ey]=func_GetProjectPoint(WayPoints_Collect(index_min,2),... \r\n                                            WayPoints_Collect(index_min,3),... \r\n                                            WayPoints_Collect(index_min+1,2),... \r\n                                            WayPoints_Collect(index_min+1,3),... \r\n                                            PosX,... \r\n                                            PosY);\r\n        Psi0 = atan2(WayPoints_Collect(index_min+1,3) - PPy, WayPoints_Collect(index_min+1,2) - PPx);\r\n        epsi        = Psi0 - PosPsi;\r\n        PrjP.ey     = ey;\r\n        PrjP.epsi   = epsi;\r\n        PrjP.xr     = PPx;\r\n        PrjP.yr     = PPy;\r\n        PrjP.psir   = Psi0;\r\n        PrjP.Velr   = Vel; \r\n        PrjP.fwar   = 0; %atan(Kprj*L);\r\n        \r\n        %------------ݳȫֲο·ѡο--------------------%\r\n        StepLength      = Vel * Ts * (Np+1);% һΪʱ׼\r\n        \r\n        count           = 1; % ͶӰΪߵ\r\n        deltax          = PPx - PosX;\r\n        deltay          = PPy - PosY; \r\n        Local_x(count)  = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n        Local_y(count)  = deltay * cos(PosPsi) - deltax * sin(PosPsi);   \r\n        Dist_Sum        = 0;      %\r\n        \r\n        count           = count + 1; % ͶӰ֮ĵһתֲ   \r\n        deltax          = WayPoints_Collect(index_min+1,2) - PosX;\r\n        deltay          = WayPoints_Collect(index_min+1,3) - PosY;\r\n        Local_x(count)  = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n        Local_y(count)  = deltay * cos(PosPsi) - deltax * sin(PosPsi);          \r\n        tempDx          = WayPoints_Collect(index_min+1,2) - PPx;\r\n        tempDy          = WayPoints_Collect(index_min+1,3) - PPy;\r\n        DistBtn         = sqrt(power(tempDx,2) + power(tempDy,2)); %·㵽ͶӰľ\r\n        Dist_Sum        = Dist_Sum + DistBtn;            \r\n        \r\n        for i=index_min+2:1:WPNum %ڲο·ѡο,ͨתתϵ\r\n            count           = count + 1;            \r\n            deltax          = WayPoints_Collect(i,2) - PosX;\r\n            deltay          = WayPoints_Collect(i,3) - PosY;\r\n            Local_x(count)  = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n            Local_y(count)  = deltay * cos(PosPsi) - deltax * sin(PosPsi); % תֲ   \r\n\r\n            tempDx          = WayPoints_Collect(i,2) - WayPoints_Collect(i-1,2);\r\n            tempDy          = WayPoints_Collect(i,3) - WayPoints_Collect(i-1,3);\r\n            DistBtn         = sqrt(power(tempDx,2) + power(tempDy,2)); %·㵽ǰһ·ľ\r\n            Dist_Sum        = Dist_Sum + DistBtn;    \r\n            \r\n            if(Dist_Sum > StepLength)\r\n                break;\r\n            end            \r\n        end % end of   for j=index_min+1:1:WPNum       \r\n        \r\n        %------------ʽ------------%\r\n        if(Dist_Sum < StepLength)\r\n           WPIndex = 0; %ûҵ򡣡 % reaching the end ... %--ûпȫ·󼸸ʱ걸пܻᱨ\r\n        else %ȫ·ҵ˺ʵĲο㣬ʽ\r\n            %----BezierϣŵڿԶ-----%\r\n            Mat(:,1)=Local_x'; \r\n            Mat(:,2)=Local_y'; \r\n            \r\n            [p0,p1,p2,p3,t] = func_FindBezierControlPointsND(Mat,'u'); %uniform parameterization\r\n            tloc            = linspace(0,1,Np+2);   %㵽յȾ,Np+1ΣNp+2\r\n            MatLocalInterp  = func_bezierInterp( p0, p1, p2, p3,tloc);   % ֵ߲õ\r\n            \r\n            Bezier_x    = zeros(Np,1);\r\n            Bezier_y    = zeros(Np,1);\r\n            Bezier_psi  = zeros(Np,1);\r\n            Bezier_K    = zeros(Np,1);\r\n            for i = 2:1:length(MatLocalInterp(:,1))-1\r\n                Bezier_x(i-1)     = MatLocalInterp(i,1);\r\n                Bezier_y(i-1)     = MatLocalInterp(i,2);\r\n                tempDx            = MatLocalInterp(i+1,1) - MatLocalInterp(i,1);\r\n                tempDy            = MatLocalInterp(i+1,2) - MatLocalInterp(i,2);\r\n                Bezier_psi(i-1)   = atan2(tempDy, tempDx);\r\n                \r\n                Bezier_K(i-1)     = func_CalPathCurve(MatLocalInterp(i-1,1),... \t% XA\r\n                                       MatLocalInterp(i-1,2),...    % YA\r\n                                       MatLocalInterp(i,1),...      % XB\r\n                                       MatLocalInterp(i,2),...      % YB\r\n                                       MatLocalInterp(i+1,1),...    % XC\r\n                                       MatLocalInterp(i+1,2));      % YC\r\n            end % end of  for i = 2:1:length(MatLocalInterp(:,1))-1\r\n        end    % end of if(Dist_Sum < StepLength)       \r\n \r\n        for i = 1:1:Np\r\n           RefP{i,1} = [Bezier_x(i);\r\n                        Bezier_y(i);\r\n                        Bezier_psi(i)]; \r\n        end  \r\n\r\n        for i = 1:1:Np\r\n           RefU{i,1} = atan(Bezier_K(i)*L); \r\n        end  \r\n    end % end of if (index_min < 1) || ( index_min > WPNum)\r\n\r\n\r\nend % end of function \r\n\r\n\r\n%==============================================================%\r\n% sub functions\r\n%==============================================================%   \r\n\r\n%--------Plot local points and the fitted polynomial----------------%\r\n% Fitted_y = K(1)*Local_x.*Local_x.*Local_x + K(2)*Local_x.*Local_x + K(3)*Local_x + K(4);\r\n% % y = K(4)*x.*x.*x+K(3)*x.*x+K(2)*x+K(1);\r\n% figure(1)\r\n% plot(Local_x,Local_y,'b')\r\n% hold on\r\n% plot(Local_x,Fitted_y,'r');\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-4/chap4_MPC_SSM_PathTracking/func_bezierInterp.m",
    "content": "% Bezier interpolation for given four control points.\r\n% Each control point can be in N-Dimensional vector space.\r\n% Input:\r\n% P0,P1,P2,P3: four control points of bezier curve,\r\n%              control points can have any number of coordinates\r\n% t(optional arg):vector that holds paramter t values b/w 0 and 1 at which \r\n%                 bezier curve is evaluated (default 101 values between 0\r\n%                 and 1.)\r\n\r\n% Output:\r\n% Q evaluated values of bezier curves. Number of columns of Q are equal to\r\n% number of coordinates in control point. For example for 2-D, Q has two\r\n% columns. Column 1 for x value and column 2 for y values. Similarly for\r\n% 3-D, Q will have three columns\r\n\r\nfunction Q=func_bezierInterp(P0,P1,P2,P3,varargin)\r\n\r\n%%% Default Values %%%\r\nt=linspace(0,1,101); % uniform parameterization \r\ndefaultValues = {t};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[t] = deal(defaultValues{:});\r\n% % --------------------------------\r\nM=[-1  3 -3 1;\r\n    3 -6  3 0;\r\n   -3  3  0 0;\r\n    1  0  0 0];\r\nfor k=1:length(t)\r\n    Q(k,:)=[t(k)^3 t(k)^2 t(k) 1]*M*[P0;P1;P2;P3];\r\nend\r\n% % Ref: Mathematical Elements of Computer Graphics by\r\n% %      David F. Rogers and J. Alan Adams (pg. 296)\r\n% % --------------------------------\r\n% % OR\r\n% % Equation of Bezier Curve, utilizes Horner's rule for efficient computation.\r\n% % Q(t)=(-P0 + 3*(P1-P2) + P3)*t^3 + 3*(P0-2*P1+P2)*t^2 + 3*(P1-P0)*t + Px0\r\n% c3 = -P0 + 3*(P1-P2) + P3;\r\n% c2 = 3*(P0 - (2*P1)+P2); \r\n% c1 = 3*(P1 - P0);\r\n% c0 = P0;\r\n% for k=1:length(t)\r\n%     Q(k,:)=((c3*t(k)+c2)*t(k)+c1)*t(k) + c0;    \r\n% end\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------\r\n"
  },
  {
    "path": "Chapter-4/chapter4_4_2.m",
    "content": "function [sys,x0,str,ts] = MY_MPCController3(t,x,u,flag)\r\n%   úдĵ3S(MATLAB汾R2011a)\r\n%   ޶ڳ˶ѧģͣΪٶȺǰƫǣʹõQPΪ°汾QPⷨ\r\n%   [sys,x0,str,ts] = MY_MPCController3(t,x,u,flag)\r\n%\r\n% is an S-function implementing the MPC controller intended for use\r\n% with Simulink. The argument md, which is the only user supplied\r\n% argument, contains the data structures needed by the controller. The\r\n% input to the S-function block is a vector signal consisting of the\r\n% measured outputs and the reference values for the controlled\r\n% outputs. The output of the S-function block is a vector signal\r\n% consisting of the control variables and the estimated state vector,\r\n% potentially including estimated disturbance states.\r\n\r\nswitch flag,\r\n case 0\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n\r\n\r\n case {1,4,9} % Unused flags\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0;\r\nsizes.NumDiscStates  = 3; % this parameter doesn't matter\r\nsizes.NumOutputs     = 2; %[speed, steering]\r\nsizes.NumInputs      = 5;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 =[0;0;0];   \r\nglobal U; % store current ctrl vector:[vel_m, delta_m]\r\nU=[0;0];\r\n% Initialize the discrete states.\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % sample time: [period, offset]\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x;\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    global a b u_piao;\r\n    global U; %store chi_tilde=[vel-vel_ref; delta - delta_ref]\r\n    global kesi;\r\n \r\n    tic\r\n    Nx=3;%״̬ĸ\r\n    Nu =2;%ĸ\r\n    Np =60;%Ԥⲽ\r\n    Nc=30;%Ʋ\r\n    Row=10;%ɳ\r\n    fprintf('Update start, t=%6.3f\\n',t)\r\n    yaw_angle =u(3)*3.1415926/180;%CarSimYaw angleΪǶȣǶתΪ\r\n\r\n%    %ֱ·\r\n    r(1)=5*t; %ref_x-axis\r\n    r(2)=5;%ref_y-axis\r\n    r(3)=0;%ref_heading_angle\r\n    vd1=5;% ref_velocity\r\n    vd2=0;% ref_steering\r\n\r\n   \r\n    %뾶Ϊ25mԲι켣, ԲΪ(0, 35), ٶΪ5m/s\r\n%     r(1)=25*sin(0.2*t);\r\n%     r(2)=35-25*cos(0.2*t);\r\n%     r(3)=0.2*t;\r\n%     vd1=5;\r\n%     vd2=0.104;\r\n\r\n%     %뾶Ϊ35mԲι켣, ԲΪ(0, 35), ٶΪ3m/s\r\n%     r(1)=25*sin(0.12*t);\r\n%     r(2)=25+10-25*cos(0.12*t);\r\n%     r(3)=0.12*t;\r\n%     vd1=3;\r\n%     vd2=0.104;\r\n\t%뾶Ϊ25mԲι켣, ԲΪ(0, 35), ٶΪ10m/s\r\n%      r(1)=25*sin(0.4*t);\r\n%      r(2)=25+10-25*cos(0.4*t);\r\n%      r(3)=0.4*t;\r\n%      vd1=10;\r\n%      vd2=0.104;\r\n%     %뾶Ϊ25mԲι켣, ԲΪ(0, 35), ٶΪ4m/s\r\n%      r(1)=25*sin(0.16*t);\r\n%      r(2)=25+10-25*cos(0.16*t);\r\n%      r(3)=0.16*t;\r\n%      vd1=4;\r\n%      vd2=0.104;\r\n\r\n    t_d =  r(3);\r\n    kesi=zeros(Nx+Nu,1);\r\n    kesi(1) = u(1)-r(1);%u(1)==X(1),x_offset\r\n    kesi(2) = u(2)-r(2);%u(2)==X(2),y_offset\r\n    heading_offset = yaw_angle - r(3); %u(3)==X(3),heading_angle_offset\r\n    if (heading_offset < -pi)\r\n        heading_offset = heading_offset + 2*pi;\r\n    end\r\n    if (heading_offset > pi)\r\n        heading_offset = heading_offset - 2*pi;\r\n    end\r\n    kesi(3)=heading_offset;\r\n    \r\n     U(1) = u(4)/3.6 - vd1; % vel, km/h-->m/s\r\n     steer_SW = u(5)*pi/180;\r\n     steering_angle = steer_SW/18.0;\r\n     U(2) = steering_angle - vd2;\r\n   \r\n    kesi(4)=U(1); % vel-vel_ref\r\n    kesi(5)=U(2); % steer_angle - steering_ref\r\n    fprintf('vel-offset=%4.2f, steering-offset, U(2)=%4.2f\\n',U(1), U(2))\r\n\r\n    T=0.05;\r\n    T_all=40;%ʱ趨ܵķʱ䣬ҪǷֹ켣Խ\r\n    % Mobile Robot Parameters\r\n    L = 2.6; % wheelbase of carsim vehicle\r\n    % Mobile Robot variable\r\n    \r\n    \r\n    %ʼ  \r\n    u_piao=zeros(Nx+Nu, 1);\r\n    Q=10 * eye(Nx*Np,Nx*Np);    \r\n    R=0.1*eye(Nu*Nc);\r\n    a=[1    0   -vd1*sin(t_d)*T;\r\n       0    1   vd1*cos(t_d)*T;\r\n       0    0   1;];\r\n    b=[cos(t_d)*T        0;\r\n       sin(t_d)*T        0;\r\n       tan(vd2)*T/L      vd1*T/(cos(vd2)^2)];\r\n  \r\n    A_cell=cell(2,2);\r\n    B_cell=cell(2,1);\r\n    A_cell{1,1}=a;\r\n    A_cell{1,2}=b;\r\n    A_cell{2,1}=zeros(Nu,Nx);\r\n    A_cell{2,2}=eye(Nu);\r\n    B_cell{1,1}=b;\r\n    B_cell{2,1}=eye(Nu);\r\n \r\n    A=cell2mat(A_cell);\r\n    B=cell2mat(B_cell);\r\n    C=[ 1 0 0 0 0;\r\n        0 1 0 0 0;\r\n        0 0 1 0 0];\r\n\r\n    PHI_cell=cell(Np,1);\r\n    THETA_cell=cell(Np,Nc);\r\n    for j=1:1:Np\r\n        PHI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Nx,Nu);\r\n            end\r\n        end\r\n    end\r\n    PHI=cell2mat(PHI_cell);%size(PHI)=[Nx*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Nx*Np Nu*(Nc+1)]\r\n\r\n    H_cell=cell(2,2);\r\n    H_cell{1,1}=THETA'*Q*THETA+R;\r\n    H_cell{1,2}=zeros(Nu*Nc,1);\r\n    H_cell{2,1}=zeros(1,Nu*Nc);\r\n    H_cell{2,2}=Row;\r\n    H=cell2mat(H_cell);\r\n    H=(H+H')/2;\r\n\r\n    error=PHI*kesi;\r\n    f_cell=cell(1,2);\r\n    f_cell{1,1} = (error'*Q*THETA);\r\n    f_cell{1,2} = 0;\r\n    f=cell2mat(f_cell);\r\n\r\n %% ΪԼ\r\n %ʽԼ\r\n    A_t=zeros(Nc,Nc);%falcone P181\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if q<=p \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ӦfalconeԼľA,ڿ˻\r\n    Ut=kron(ones(Nc,1), U);%\r\n    umin=[-10.5;  -0.436];%[min_vel, min_steer]άƱĸͬ\r\n    umax=[10.0;   0.436]; %[max_vel, max_steer],%0.436rad = 25deg\r\n    delta_umin = [-0.5;  -0.082]; % 0.0082rad = 0.47deg\r\n    delta_umax = [0.5;  0.082];\r\n\r\n    Umin=kron(ones(Nc,1),umin);\r\n    Umax=kron(ones(Nc,1),umax);\r\n    A_cons_cell={A_I zeros(Nu*Nc, 1); -A_I zeros(Nu*Nc, 1)};\r\n    b_cons_cell={Umax-Ut;-Umin+Ut};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ\r\n    b_cons=cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n\r\n   % ״̬Լ\r\n    delta_Umin = kron(ones(Nc,1),delta_umin);\r\n    delta_Umax = kron(ones(Nc,1),delta_umax);\r\n    lb = [delta_Umin; 0];%̣ⷽ״̬½\r\n    ub = [delta_Umax; 10];%̣ⷽ״̬Ͻ\r\n  \r\n    %% ʼ\r\n%     options = optimset('Algorithm','active-set');\r\n    options = optimset('Algorithm','interior-point-convex'); \r\n    warning off all  % close the warnings during computation     \r\n    [X, fval,exitflag]=quadprog(H, f, A_cons, b_cons,[], [],lb,ub,[],options);\r\n    fprintf('quadprog EXITFLAG = %d\\n',exitflag);\r\n\r\n    %%    \r\n    u_piao(1)=X(1);\r\n    u_piao(2)=X(2);\r\n    U(1)=kesi(4)+u_piao(1);%ڴ洢һʱ̵Ŀ\r\n    U(2)=kesi(5)+u_piao(2);\r\n    u_real(1) = U(1) + vd1;\r\n    u_real(2) = U(2) + vd2;\r\n\r\n    sys= [u_real(1); u_real(2)]; % vel, steering, x, y\r\n    toc\r\n% End of mdlOutputs."
  },
  {
    "path": "Chapter-5/ReadMe",
    "content": "This folder holds simulation codes for Chapter 5\n\n* chapter5_1_1.m: Matlab code for nonlinear dynamic model linearization and discretization\n\n* chapter5_2_2.m: Matlab code for AFS use MPC\n\n* chapter5_5_2.m: Matlab code for Tire Cornering Stiffness Estimation \n\n* chap5_DynamicModel_AFS :Matlab code for MPC of AFS\n\n* chap5_TireStiffness_Estimation: Matlab code for Tire Cornering Stiffness Estimation use RLS method\n\n* chap5_CorneringStiffness_Estimation: another Matlab code for Tire Cornering Stiffness Estimation use RLS method\n\n\n"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/Chapter5_CorneringStiffness_Estimation.par",
    "content": "PARSFILE\r\n\r\n#EXPANDED_PARSFILE 2.0\r\n\r\n! This is an expansion of the parsfile: \"Runs\\Run274.par\"\r\n! It contains the contents of that file plus the contents of any files linked\r\n! with the \"PARSFILE\" or \"SPECIAL_PARSFILE\" keywords.\r\n\r\n! File created: 03:45 on August 24, 2019 by CarSim Version 8.1a, October 2011\r\n\r\nPRODUCT_NAME CarSim\r\n\r\nENTER_PARSFILE Runs\\Run274.par`08-24-2019`03:12:26\r\n#FullDataName CarSim Run Control`Chapter5_CorneringStiffness_Estimation`BOOK_MPC_Examples\r\n#VehicleCode Ind_SA\r\n\r\nOPT_ALL_WRITE 0\r\nIOBJECT 0\r\nOPT_INT_METHOD 2\r\nENTER_PARSFILE Models\\Simulink\\Cmex124.par`08-24-2019`03:12:04\r\n#FullDataName Models: Simulink`Solver_TireCorneringStiffness_RLS`BOOK_MPC_Models\r\n#RunMdlFile e:\\Carsim\\Book_examples\\chap5_CorneringStiffness_Estimation\\CorneringStiffness_Estimation.mdl\r\n#RingCtrl1 2\r\nOPT_INT_METHOD 2\r\n#RingCtrl2 1\r\n*X64SOLVER 1\r\n#CheckBox0 1\r\n*USE_ALT_DIR 1\r\n#CheckBox1 0\r\n*USE_DIFF_SOLVERS 0\r\n#CheckBox2 0\r\nOPT_IO_UPDATE 0\r\n#CheckBox3 1\r\n\r\n*TSTEP 0.001\r\n*FREQ_MODEL 1000\r\n*TSTEP_OUT 0.025\r\n*FREQ_OUT 40\r\ntstep 0.001\r\niprint 25\r\n#AltPath E:\\Carsim\\Book_examples\\chap5_CorneringStiffness_Estimation\r\n*ALTERNATE_PATH E:\\Carsim\\Book_examples\\chap5_CorneringStiffness_Estimation\r\nENTER_PARSFILE IO_Channels\\O_Channels\\O_Ch122.par`08-24-2019`03:17:45\r\n#FullDataName I/O Channels: Export`CorneringStiffness_Estimation_Exports`MPC_BOOK_Sim_Exports\r\n*README_FILE Programs\\solvers\\ReadMe\\i_i_outputs_tab.txt\r\n\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 2\r\n\r\nEXP_Vx\r\nEXP_Vy\r\nEXP_AV_Y\r\nEXP_Steer_L1\r\nEXP_Steer_R1\r\nEXP_Alpha_L1\r\nEXP_Alpha_L2\r\nEXP_Alpha_R1\r\nEXP_Alpha_R2\r\nEXP_Fy_L1\r\nEXP_Fy_L2\r\nEXP_Fy_R1\r\nEXP_Fy_R2\r\n#MiscYellow0\r\n#Number of Selected Channels: 13\r\n#CHN_NAME: Vx\r\n#CHN_NAME: Vy\r\n#CHN_NAME: AV_Y\r\n#CHN_NAME: Steer_L1\r\n#CHN_NAME: Steer_R1\r\n#CHN_NAME: Alpha_L1\r\n#CHN_NAME: Alpha_L2\r\n#CHN_NAME: Alpha_R1\r\n#CHN_NAME: Alpha_R2\r\n#CHN_NAME: Fy_L1\r\n#CHN_NAME: Fy_L2\r\n#CHN_NAME: Fy_R1\r\n#CHN_NAME: Fy_R2\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: I/O Channels: Export; { MPC_BOOK_Sim_Exports } CorneringStiffness_Estimation_Exports\r\n#Library : I/O Channels: Export\r\n#DataSet : CorneringStiffness_Estimation_Exports\r\n#Category: MPC_BOOK_Sim_Exports\r\n#FileID  : O_Ch122\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-24-2019 03:17:45\r\n#VehCode Export Channels\r\n\r\nEXIT_PARSFILE IO_Channels\\O_Channels\\O_Ch122.par\r\n\r\n#BlueLink1 I/O Channels: Export`CorneringStiffness_Estimation_Exports` MPC_BOOK_Sim_Exports` , Export\r\n\r\n#MiscYellow1\r\nsimfile LEO_CornerStiffness_Estimation.sim\r\n#ENDMYellow\r\n\r\n\r\nLOG_ENTRY Used Dataset: Models: Simulink; { BOOK_MPC_Models } Solver_TireCorneringStiffness_RLS\r\n#Library : Models: Simulink\r\n#DataSet : Solver_TireCorneringStiffness_RLS\r\n#Category: BOOK_MPC_Models\r\n#FileID  : Cmex124\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-24-2019 03:12:04\r\n#VehCode\r\n\r\nEXIT_PARSFILE Models\\Simulink\\Cmex124.par\r\n\r\n#BlueLink12 Models: Simulink`Solver_TireCorneringStiffness_RLS` BOOK_MPC_Models` , Models\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera107.par`08-02-2011`16:43:55\r\n#FullDataName Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)`Vehicle Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame106.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw`Cameras\r\nADD_REFERENCE_FRAME Cameras Camera Tracking X-Y-Z-Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME Xo\r\nSET_Y_NAME Yo\r\nSET_Z_NAME Zo\r\nSET_YAW_NAME yaw\r\n\r\n#MiscYellow0\r\ncam_global_ambient .4 .4 .4 1\r\n#ENDMYellow\r\n\r\nWRT_Xo\r\nANI_Xo\r\nWRT_Yo\r\nANI_Yo\r\nWRT_Zo\r\nANI_Zo\r\nWRT_yaw\r\nANI_yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Cameras } Camera Tracking X-Y-Z-Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Tracking X-Y-Z-Yaw\r\n#Category: Cameras\r\n#FileID  : Frame106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame106.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Tracking X-Y-Z-Yaw` Cameras` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Cameras Camera Tracking X-Y-Z-Yaw\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 15\r\nSET_DISTANCE 36\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 15\r\n*SET_DISTANCE 36\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 37\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Vehicle Reference } Rear View High, Veh. Ref., (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View High, Veh. Ref., (Frt. Facing)\r\n#Category: Vehicle Reference\r\n#FileID  : Camera107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera107.par\r\n\r\n#BlueLink0 Animator: Camera Setup`Rear View High, Veh. Ref., (Frt. Facing)` Vehicle Reference` , Animator camera\r\n\r\n#CheckBox0 1\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 0\r\n#CheckBox6 0\r\n#CheckBox7 0\r\n#CheckBox8 0\r\n#CheckBox9 0\r\n\r\n#RingCtrl0 4\r\n#RingCtrl1 1\r\n#RingCtrl3 0\r\n#RingCtrl6 0\r\n*RUN_COLOR 0.753 0.753 0.753\r\nSET_RUN_COLOR 0.753 0.753 0.753\r\nFLAG_10 274\r\nID_RUN 274\r\n#RingCtrl4 off\r\nRT_WINDOW_CLOSE off\r\n#RingCtrl5 0\r\nLIVE_SERVER_MAX_CONNECTIONS 0\r\nENTER_PARSFILE Vehicles\\Assembly\\Vehicle165.par`08-23-2019`18:41:30\r\n#FullDataName Vehicle: Assembly`D-Class, SUV LEO-defined`CS D-Class\r\n#VehCode Ind_SA\r\n#CheckBox0 0\r\n\r\n#RingCtrl0 3\r\nOPT_PT 3\r\n#RingCtrl1 1\r\n#RingCtrl2 3\r\n\r\n* Front components\r\niaxle 1\r\nsymbol_push <<axle>> 1\r\nENTER_PARSFILE Suspensions\\Compliance\\SuspCmp119.par`08-02-2011`16:42:38\r\n#FullDataName Suspension: Independent Compliance, Springs, and Dampers`D-Class, SUV - Front Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\n*R_SPRING_L 0.611\r\n*R_SPRING_R 0.611\r\n*R_DAMPER_L 0.614\r\n*R_DAMPER_R 0.614\r\n*CT_FX_L 4.45e-6\r\n*CT_FX_R 4.45e-6\r\n*CS_FY_L -1.0e-06\r\n*CS_FY_R -1.0e-06\r\n*CS_MZ_L 3.8e-4\r\n*CS_MZ_R 3.8e-4\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 1.5e-5\r\n*CI_FY_R 1.5e-5\r\n*CI_MZ_L 3.1e-5\r\n*CI_MZ_R 3.1e-5\r\n*C_LONG_L 1.6e-5\r\n*C_LONG_R 1.6e-5\r\n*C_LAT_L 1.6e-5\r\n*C_LAT_R 1.6e-5\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\n*R_JOUNCE_L 0.614\r\n*R_JOUNCE_R 0.614\r\n*R_REBOUND_L 0.614\r\n*R_REBOUND_R 0.614\r\n\r\nENTER_PARSFILE Suspensions\\Shocks\\Shock102.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Shock Absorber`Big SUV Damping`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFD_TABLE SPLINE\r\n-1410, -7316\r\n-720, -5019\r\n-390, -3395\r\n-210, -2618\r\n-90, -1472\r\n-20, -333\r\n20, 333\r\n90, 870\r\n200, 1145\r\n390, 1607\r\n760, 2623\r\n1160, 3740\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Shock Absorber; Big SUV Damping\r\n#Library : Suspension: Shock Absorber\r\n#DataSet : Big SUV Damping\r\n#Category:\r\n#FileID  : Shock102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Shock absorber\r\n\r\nEXIT_PARSFILE Suspensions\\Shocks\\Shock102.par\r\n\r\n#BlueLink1 Suspension: Shock Absorber`Big SUV Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx107.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`Linear 569 N-m/deg`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 569\r\n\r\nMX_AUX_COEFFICIENT 569\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; Linear 569 N-m/deg\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : Linear 569 N-m/deg\r\n#Category:\r\n#FileID  : AuxMx107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx107.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`Linear 569 N-m/deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+70 mm / -50 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n68, 0\r\n69, 0\r\n70, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-70, -10000\r\n-69, 0\r\n-68, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +70 mm / -50 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +70 mm / -50 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb102.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.614\r\nCT_FX_COEFFICIENT 4.45e-6\r\nCS_FY_COEFFICIENT -1.0e-06\r\nCS_MZ_COEFFICIENT 3.8e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.5e-5\r\nCI_MZ_COEFFICIENT 3.1e-5\r\nC_LONG_COEFFICIENT 1.6e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.614\r\nCMP_RSTOP_COEFFICIENT 0.614\r\nENTER_PARSFILE Suspensions\\Springs\\Spring117.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Spring`130 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 130\r\nFS_EXT_COEFFICIENT 130\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 130\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 130 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 130 N/mm\r\n#Category:\r\n#FileID  : Spring117\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring117.par\r\n\r\n#BlueLink0 Suspension: Spring`130 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big SUV Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+70 mm / -50 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.611\r\nCMP_DAMP_COEFFICIENT 0.614\r\nCT_FX_COEFFICIENT 4.45e-6\r\nCS_FY_COEFFICIENT -1.0e-06\r\nCS_MZ_COEFFICIENT 3.8e-4\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 1.5e-5\r\nCI_MZ_COEFFICIENT 3.1e-5\r\nC_LONG_COEFFICIENT 1.6e-5\r\nC_LAT_COEFFICIENT 1.6e-5\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 0.614\r\nCMP_RSTOP_COEFFICIENT 0.614\r\n#BlueLink3 Suspension: Spring`130 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent Compliance, Springs, and Dampers; { CS D-Class } D-Class, SUV - Front Comp.\r\n#Library : Suspension: Independent Compliance, Springs, and Dampers\r\n#DataSet : D-Class, SUV - Front Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmp119\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:38\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Compliance\\SuspCmp119_note.txt\r\nFront spring rate chosen for a front ride frequency of 1.7 Hz and a front corner weight of 428 kg.\r\nEXIT_NOTEFILE Suspensions\\Compliance\\SuspCmp119_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance\\SuspCmp119.par\r\n\r\n#BlueLink16 Suspension: Independent Compliance, Springs, and Dampers`D-Class, SUV - Front Comp.` CS D-Class` , Front compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Indy\\IndKin115.par`08-02-2011`16:42:39\r\n#FullDataName Suspension: Independent System Kinematics`D-Class, SUV - Front Suspension`CS D-Class\r\niside 1\r\nL_TRACK 1565\r\nY_CL_SUSP 0\r\nM_US 80\r\n*IW_L 0.9\r\n*JNC_DESIGN_L 0\r\n*IW_R 0.9\r\n*JNC_DESIGN_R 0\r\n*TOE_L -0.2\r\n*TOE_R -0.2\r\n*CAMBER_L -0.3\r\n*CAMBER_R -0.3\r\nR_US_STR 0.8\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_DIVE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_TABLE SPLINE\r\n-70, 2.07166\r\n-60, 1.77237\r\n-50, 1.47431\r\n-40, 1.17742\r\n-30, 0.881618\r\n-20, 0.586832\r\n-10, 0.292987\r\n0, 0\r\n10, -0.292218\r\n20, -0.583766\r\n30, -0.874758\r\n40, -1.16532\r\n50, -1.45561\r\n60, -1.7458\r\n70, -2.03611\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { SLA } Front SLA - Dive Angle\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Front SLA - Dive Angle\r\n#Category: SLA\r\n#FileID  : Dive103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\nNOTE:  Sign convention of the CS 7.01b and earlier datasets was reversed and demonstrated a pro-dive suspension.  This dataset represents an anti-dive suspension.\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive103.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Left wheel dive (caster change)\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX103.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Front SLA - Longitudinal Movement`SLA\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-70, -0.729904\r\n-60, -0.634454\r\n-50, -0.536096\r\n-40, -0.434813\r\n-30, -0.330589\r\n-20, -0.2234\r\n-10, -0.113217\r\n0, 0\r\n10, 0.116308\r\n20, 0.235783\r\n30, 0.358522\r\n40, 0.484654\r\n50, 0.61434\r\n60, 0.747787\r\n70, 0.885253\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { SLA } Front SLA - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Front SLA - Longitudinal Movement\r\n#Category: SLA\r\n#FileID  : SusX103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\nGeneric SLA Longitudinal movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX103.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Left wheel X\r\n\r\nENTER_PARSFILE Suspensions\\Camber\\Camber103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Camber Angle`Front SLA - Camber Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nCAMBER_TABLE SPLINE\r\n-70, 1.08171\r\n-60, 0.996827\r\n-50, 0.88789\r\n-40, 0.755642\r\n-30, 0.600569\r\n-20, 0.422934\r\n-10, 0.222791\r\n0, 0\r\n10, -0.245764\r\n20, -0.515012\r\n30, -0.808436\r\n40, -1.12692\r\n50, -1.47156\r\n60, -1.84365\r\n70, -2.24474\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Camber Angle; { SLA } Front SLA - Camber Change\r\n#Library : Suspension: Camber Angle\r\n#DataSet : Front SLA - Camber Change\r\n#Category: SLA\r\n#FileID  : Camber103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Camber\r\n\r\nENTRY_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\nGeneric SLA Camber change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Camber\\Camber103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Camber\\Camber103.par\r\n\r\n#BlueLink2 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Left wheel camber\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat103.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Front SLA - Lateral Movement`SLA\r\n#RingCtrl0 SPLINE\r\n#DiagramOne0\r\nSUSP_LAT_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\nSUSP_LAT_AXLE_JOUNCE_TABLE SPLINE\r\n-70, 4.74662\r\n-60, 3.12302\r\n-50, 1.82181\r\n-40, 0.837522\r\n-30, 0.165882\r\n-20, -0.196302\r\n-10, -0.251197\r\n0, 0\r\n10, 0.557037\r\n20, 1.42059\r\n30, 2.59226\r\n40, 4.07461\r\n50, 5.87116\r\n60, 7.98647\r\n70, 10.4262\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { SLA } Front SLA - Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Front SLA - Lateral Movement\r\n#Category: SLA\r\n#FileID  : SusLat103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\nGeneric SLA Lateral movement vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat103.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Left wheel lateral (-Y)\r\n\r\nENTER_PARSFILE Suspensions\\Toe\\Toe103.par`08-02-2011`16:42:33\r\n#FullDataName Suspension: Toe Angle`Front SLA - Toe Change`SLA\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nTOE_TABLE SPLINE\r\n-70, 0.292407\r\n-60, 0.237822\r\n-50, 0.187561\r\n-40, 0.141604\r\n-30, 0.099916\r\n-20, 0.062452\r\n-10, 0.029164\r\n0, 0\r\n10, -0.025093\r\n20, -0.046165\r\n30, -0.063264\r\n40, -0.076429\r\n50, -0.085696\r\n60, -0.091086\r\n70, -0.09261\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Toe Angle; { SLA } Front SLA - Toe Change\r\n#Library : Suspension: Toe Angle\r\n#DataSet : Front SLA - Toe Change\r\n#Category: SLA\r\n#FileID  : Toe103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Toe\r\n\r\nENTRY_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\nGeneric SLA Toe change vs. Jounce\r\n\r\nEXIT_NOTEFILE Suspensions\\Toe\\Toe103_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Toe\\Toe103.par\r\n\r\n#BlueLink4 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Left wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -0.3\r\n\r\niside 2\r\n#BlueLink5 Suspension: Dive Angle (Caster Change)`Front SLA - Dive Angle` SLA` , Right wheel dive (caster change)\r\n\r\n#BlueLink6 Suspension: Longitudinal Position`Front SLA - Longitudinal Movement` SLA` , Right wheel X\r\n\r\n#BlueLink7 Suspension: Camber Angle`Front SLA - Camber Change` SLA` , Right wheel camber\r\n\r\n#BlueLink8 Suspension: Lateral Position`Front SLA - Lateral Movement` SLA` , Right wheel lateral (+Y)\r\n\r\n#BlueLink9 Suspension: Toe Angle`Front SLA - Toe Change` SLA` , Right wheel toe\r\n\r\nIW 0.9\r\nJNC_DESIGN 0\r\nA_TOE -0.2\r\nA_CAMBER -0.3\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Independent System Kinematics; { CS D-Class } D-Class, SUV - Front Suspension\r\n#Library : Suspension: Independent System Kinematics\r\n#DataSet : D-Class, SUV - Front Suspension\r\n#Category: CS D-Class\r\n#FileID  : IndKin115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:39\r\n#VehCode Independent\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Indy\\IndKin115_note.txt\r\nGeneric Front SLA suspension kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Indy\\IndKin115_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Indy\\IndKin115.par\r\n\r\n#BlueLink19 Suspension: Independent System Kinematics`D-Class, SUV - Front Suspension` CS D-Class` , Front kinematics\r\n\r\n\r\n* LF tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\nENTER_PARSFILE Tires\\Tire\\Tire112.par`08-02-2011`16:42:33\r\n#FullDataName Tire`255/75 R16`Touring Tires\r\nX_LENGTH 394\r\nZ_LENGTH 394\r\nY_LENGTH 255\r\n#CheckBox1 1\r\n#CheckBox2 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 1\r\nOPT_TIRE_MODEL 1\r\n\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup140.par`08-02-2011`16:43:39\r\n#FullDataName Animator: Shape Assembly`Small SUV`Tires\r\n*ANGLE_Z 180\r\n*ANGLE_Y 0\r\n*ANGLE_X 0\r\n*X_REF_LENGTH 334\r\n*Y_REF_LENGTH 205\r\n*Z_REF_LENGTH 334\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL257.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera103.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Top)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame  Fixed\r\nENTER_PARSFILE Animator\\Frames\\Frame103.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Reference Frame`Fixed`\r\nADD_REFERENCE_FRAME  Fixed\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; Fixed\r\n#Library : Animator: Reference Frame\r\n#DataSet : Fixed\r\n#Category:\r\n#FileID  : Frame103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame103.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Fixed` ` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame  Fixed\r\nSET_LOOKPOINT_X -1.2\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 90\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X -1.2\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 90\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Top)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Top)\r\n#Category: Shape Preview\r\n#FileID  : Camera103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera103.par\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Tire\r\n#Category: Tires\r\n#FileID  : AniSTL257\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL257.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Small SUV Tire` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL258.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Wheel`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .6 .6 .6\r\n*SPECULAR 0.5\r\nSMOOTH_MAX_ANGLE 50\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.5 0.5 0.5\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Wheel\r\n#Category: Tires\r\n#FileID  : AniSTL258\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL258.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Small SUV Wheel` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL259.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Stripe`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\stripe.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR white\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.01\r\nSET_OFFSET_Z 0.01\r\n*SPECULAR 0\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Stripe\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Stripe\r\n#Category: Tires\r\n#FileID  : AniSTL259\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL259.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Small SUV Stripe` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nENTER_PARSFILE Animator\\STL\\AniSTL260.par`08-02-2011`16:43:49\r\n#FullDataName Animator: Shape File Link`Small SUV Rotor`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\205_70R15\\rotor.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .1 .1 .1\r\n*SPECULAR 0\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Small SUV Rotor\r\n#Library : Animator: Shape File Link\r\n#DataSet : Small SUV Rotor\r\n#Category: Tires\r\n#FileID  : AniSTL260\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:49\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL260.par\r\n\r\n#BlueLink3 Animator: Shape File Link`Small SUV Rotor` Tires` , Shape File\r\n\r\nset_angle_x 0\r\nset_angle_y 0\r\nset_angle_z 180\r\nx_ref_length 334\r\ny_ref_length 205\r\nz_ref_length 334\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera104.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Shape Preview (Side)`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\nENTER_PARSFILE Animator\\Frames\\Frame101.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Yaw for Shape Preview`Shape Preview\r\nADD_REFERENCE_FRAME Shape Preview Yaw for Shape Preview\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_YAW_NAME Yaw\r\n\r\nWRT_Yaw\r\nANI_Yaw\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Shape Preview } Yaw for Shape Preview\r\n#Library : Animator: Reference Frame\r\n#DataSet : Yaw for Shape Preview\r\n#Category: Shape Preview\r\n#FileID  : Frame101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame101.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 0\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0\r\nSET_AZIMUTH 0\r\nSET_ELEVATION 0\r\nSET_DISTANCE 35\r\n*SET_LOOKPOINT_X 0\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0\r\n*SET_AZIMUTH 0\r\n*SET_ELEVATION 0\r\n*SET_DISTANCE 35\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Shape Preview (Side)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Shape Preview (Side)\r\n#Category: Shape Preview\r\n#FileID  : Camera104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera104.par\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { Tires } Small SUV\r\n#Library : Animator: Shape Assembly\r\n#DataSet : Small SUV\r\n#Category: Tires\r\n#FileID  : StlGroup140\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:39\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup140.par\r\n\r\n#BlueLink4 Animator: Shape Assembly`Small SUV` Tires` , Animator\r\n\r\nWRITE_WHEEL_OFFSET\r\nSET_NUM_POINTS 12\r\nSET_THICKNESS_SGUI 255\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet106.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Tire Sounds - 1150 kg Rated Load`Tire Sounds\r\n#MiscYellow0\r\ndefine_parameter rated_load_<<tire>> 1150; units = kg;\r\n#ENDMYellow\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Lateral Slip`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 0.7\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Force Effects`Tire Lateral Slip Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod1_<<tire>> = abs(fy_<<tire>>) /(rated_load_<<tire>> * 9.80665) * MuY_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod1_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.3\r\nSOUNDMOD_INPUT_LOW 0.6\r\nSOUNDMOD_INPUT_HIGH 0.9\r\nSOUNDMOD_INPUT_MAX 1.2\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod1_<<tire>>\r\nANI_mod1_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Lateral Slip Sound Modifiers } Loudness: Lateral Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Force Effects\r\n#Category: Tire Lateral Slip Sound Modifiers\r\n#FileID  : SndMod129\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod129.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Lateral Force Effects` Tire Lateral Slip Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Lateral Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod2_<<tire>> = sin(min(abs(alphL_<<tire>>), 15 / dr) * abs(vxcen<<tire>>);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod2_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.1\r\nSOUNDMOD_INPUT_LOW 0.5\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.5\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_mod2_<<tire>>\r\nANI_mod2_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Lateral Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Lateral Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod130\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod130.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Lateral Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Lateral Slip\r\n#Library : Animator: Sound Sample\r\n#DataSet : Lateral Slip\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp112.par\r\n\r\n#BlueLink0 Animator: Sound Sample`Lateral Slip` Tire Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wheelspin / Brake Lockup`Tire Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Tire\\Generic-Tire-01_Skid-01.wav\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.0\r\nSOUND_VOL_MAX 4.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 1.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Force Effects`Wheelspin / Lockup Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod3_<<tire>> = abs(fx_<<tire>>) / (rated_load_<<tire>> * 9.80665) * MuX_<<tire>>;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod3_<<tire>>\r\nSOUNDMOD_INPUT_MIN 0.2\r\nSOUNDMOD_INPUT_LOW 0.4\r\nSOUNDMOD_INPUT_HIGH 0.6\r\nSOUNDMOD_INPUT_MAX 0.8\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_mod3_<<tire>>\r\nANI_mod3_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wheelspin / Lockup Sound Modifiers } Loudness: Longitudinal Force Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Force Effects\r\n#Category: Wheelspin / Lockup Sound Modifiers\r\n#FileID  : SndMod131\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod131.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Longitudinal Force Effects` Wheelspin / Lockup Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Longitudinal Speed Effects`Tire Speed Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output mod4_<<tire>> = min(abs(KappL_<<tire>>), 1.0) * abs(vxcen<<tire>>) ;\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME mod4_<<tire>>\r\nSOUNDMOD_INPUT_MIN 1.5\r\nSOUNDMOD_INPUT_LOW 2.0\r\nSOUNDMOD_INPUT_HIGH 2.5\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.3333\r\nSOUNDMOD_OUTPUT_HIGH 0.6667\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_mod4_<<tire>>\r\nANI_mod4_<<tire>>\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Tire Speed Sound Modifiers } Loudness: Longitudinal Speed Effects\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Longitudinal Speed Effects\r\n#Category: Tire Speed Sound Modifiers\r\n#FileID  : SndMod132\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod132.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Loudness: Longitudinal Speed Effects` Tire Speed Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Tire Sounds } Wheelspin / Brake Lockup\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wheelspin / Brake Lockup\r\n#Category: Tire Sounds\r\n#FileID  : SndSmp113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp113.par\r\n\r\n#BlueLink1 Animator: Sound Sample`Wheelspin / Brake Lockup` Tire Sounds` , Sample 2\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { Tire Sounds } Tire Sounds - 1150 kg Rated Load\r\n#Library : Animator: Sound Set\r\n#DataSet : Tire Sounds - 1150 kg Rated Load\r\n#Category: Tire Sounds\r\n#FileID  : SndSet106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet106.par\r\n\r\n#BlueLink13 Animator: Sound Set`Tire Sounds - 1150 kg Rated Load` Tire Sounds` , Animator\r\n\r\nRRE 379\r\nR0 394\r\nFZ_TIRE_COEFFICIENT 470\r\nFZ_MAX 100000\r\nIT 0\r\nL_RELAX_X 38\r\nL_RELAX_Y 780\r\nVLOW_ALPHA 5\r\nRR_C 0.0042\r\nRR_V 0.000032\r\nRR_FX 1\r\nOPT_TIRE_COMB 1\r\nR_TIRE_COMB 1.5\r\nENTER_PARSFILE Tires\\Mz\\TireMz109.par`08-02-2011`16:42:32\r\n#FullDataName Tire: Aligning Moment`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Aligning moment (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nMZ_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.5, 14.18, 27.44, 39.66, 50.77, 60.75, 69.58, 77.28, 83.85\r\n1, 28.61, 55.37, 80.02, 102.45, 122.6, 140.44, 155.97, 169.22\r\n1.5, 42.17, 81.77, 118.43, 151.95, 182.2, 209.12, 232.69, 252.89\r\n2, 52.19, 101.72, 148.12, 191.09, 230.41, 265.9, 297.44, 324.92\r\n2.5, 56.3, 110.58, 162.37, 211.32, 257.09, 299.38, 337.91, 372.43\r\n3, 54.51, 107.99, 160.11, 210.54, 258.91, 304.87, 348.02, 387.99\r\n3.5, 48.92, 97.71, 146.21, 194.18, 241.35, 287.38, 331.9, 374.51\r\n4, 41.89, 84.25, 127.05, 170.2, 213.52, 256.78, 299.72, 341.99\r\n4.5, 34.92, 70.64, 107.23, 144.67, 182.91, 221.83, 261.26, 300.98\r\n5, 28.7, 58.33, 89.04, 120.86, 153.81, 187.85, 222.93, 258.91\r\n5.5, 23.39, 47.76, 73.27, 99.99, 127.99, 157.28, 187.88, 219.73\r\n6, 18.96, 38.88, 59.94, 82.23, 105.83, 130.8, 157.18, 184.99\r\n6.5, 15.28, 31.48, 48.78, 67.28, 87.08, 108.26, 130.86, 154.95\r\n7, 12.21, 25.31, 39.45, 54.74, 71.3, 89.18, 108.48, 129.26\r\n7.5, 9.65, 20.13, 31.61, 44.2, 57.98, 73.05, 89.48, 107.35\r\n8, 7.49, 15.77, 25, 35.28, 46.7, 59.35, 73.31, 88.65\r\n8.5, 5.65, 12.07, 19.38, 27.69, 37.09, 47.67, 59.49, 72.64\r\n9, 4.09, 8.89, 14.56, 21.19, 28.85, 37.63, 47.61, 58.86\r\n9.5, 2.73, 6.16, 10.41, 15.57, 21.73, 28.96, 37.34, 46.92\r\n10, 1.56, 3.78, 6.8, 10.7, 15.55, 21.43, 28.4, 36.54\r\n10.5, 0.53, 1.71, 3.64, 6.43, 10.14, 14.83, 20.58, 27.44\r\n11, -0.37, -0.12, 0.87, 2.68, 5.37, 9.02, 13.69, 19.43\r\n11.5, -1.17, -1.74, -1.59, -0.65, 1.16, 3.88, 7.59, 12.34\r\n12, -1.89, -3.18, -3.78, -3.61, -2.6, -0.69, 2.16, 6.03\r\n12.5, -2.53, -4.48, -5.74, -6.26, -5.96, -4.78, -2.69, 0.39\r\n13, -3.1, -5.64, -7.5, -8.64, -8.97, -8.46, -7.05, -4.69\r\n13.5, -3.62, -6.68, -9.1, -10.79, -11.7, -11.78, -10.99, -9.26\r\n14, -4.09, -7.64, -10.54, -12.74, -14.17, -14.79, -14.55, -13.41\r\n14.5, -4.52, -8.5, -11.85, -14.51, -16.42, -17.53, -17.8, -17.18\r\n15, -4.91, -9.29, -13.05, -16.13, -18.47, -20.03, -20.76, -20.62\r\n15.5, -5.27, -10.02, -14.16, -17.62, -20.35, -22.32, -23.48, -23.78\r\n16, -5.6, -10.69, -15.17, -18.98, -22.09, -24.43, -25.97, -26.67\r\n16.5, -5.91, -11.3, -16.1, -20.24, -23.68, -26.37, -28.27, -29.34\r\n17, -6.19, -11.87, -16.97, -21.41, -25.16, -28.16, -30.39, -31.81\r\n17.5, -6.45, -12.4, -17.77, -22.49, -26.52, -29.83, -32.36, -34.09\r\n18, -6.7, -12.9, -18.51, -23.5, -27.8, -31.37, -34.19, -36.21\r\n18.5, -6.92, -13.35, -19.21, -24.43, -28.98, -32.81, -35.89, -38.19\r\n19, -7.14, -13.78, -19.86, -25.31, -30.09, -34.16, -37.48, -40.03\r\n19.5, -7.33, -14.18, -20.47, -26.13, -31.12, -35.41, -38.97, -41.75\r\n20, -7.52, -14.56, -21.04, -26.89, -32.09, -36.59, -40.36, -43.36\r\n20.5, -7.7, -14.91, -21.57, -27.61, -33, -37.7, -41.67, -44.88\r\n21, -7.86, -15.25, -22.07, -28.29, -33.86, -38.74, -42.9, -46.3\r\n21.5, -8.02, -15.56, -22.55, -28.93, -34.67, -39.72, -44.05, -47.64\r\n22, -8.16, -15.86, -23, -29.53, -35.43, -40.64, -45.14, -48.91\r\n22.5, -8.3, -16.14, -23.42, -30.1, -36.15, -41.51, -46.18, -50.1\r\n23, -8.43, -16.4, -23.82, -30.64, -36.83, -42.34, -47.15, -51.23\r\n23.5, -8.56, -16.65, -24.2, -31.16, -37.47, -43.13, -48.08, -52.3\r\n24, -8.68, -16.89, -24.56, -31.64, -38.09, -43.87, -48.95, -53.32\r\n24.5, -8.79, -17.12, -24.91, -32.1, -38.67, -44.58, -49.79, -54.28\r\n25, -8.9, -17.33, -25.23, -32.54, -39.23, -45.25, -50.58, -55.2\r\n26, -8.9, -17.33, -25.23, -32.54, -39.23, -45.25, -50.58, -55.2\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Aligning Moment; { Touring Tires } 255/75 R16\r\n#Library : Tire: Aligning Moment\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireMz109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:32\r\n#VehCode Tire: Mz\r\n\r\nEXIT_PARSFILE Tires\\Mz\\TireMz109.par\r\n\r\n#BlueLink0 Tire: Aligning Moment`255/75 R16` Touring Tires` , Aligning moment\r\n\r\nENTER_PARSFILE Tires\\Fy\\TireFy109.par`08-02-2011`16:42:29\r\n#FullDataName Tire: Lateral Force`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_Y 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Slip angle [Alpha] (deg)\r\n*3D_ZLabel Absolute lateral tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFY_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.5, 306.2, 600.88, 882.3, 1149.48, 1401.78, 1638.74, 1860.01, 2065.37\r\n1, 605.83, 1189, 1746.07, 2275.1, 2774.82, 3244.29, 3682.86, 4090.04\r\n1.5, 892.78, 1752.48, 2574.01, 3354.57, 4092.23, 4785.63, 5433.75, 6035.88\r\n2, 1161.8, 2281.06, 3351.23, 4368.63, 5330.76, 6235.81, 7082.44, 7869.65\r\n2.5, 1408.82, 2766.79, 4066.08, 5302.21, 6472.14, 7573.62, 8604.98, 9564.94\r\n3, 1631.13, 3204.39, 4710.78, 6145.16, 7503.95, 8784.53, 9984.87, 11103.43\r\n3.5, 1827.46, 3591.29, 5281.5, 6892.37, 8419.86, 9860.96, 11213.35, 12475.2\r\n4, 1997.83, 3927.42, 5778.04, 7543.42, 9219.14, 10801.85, 12288.92, 13678.27\r\n4.5, 2143.28, 4214.8, 6203.19, 8101.76, 9905.76, 11611.53, 13216.18, 14717.36\r\n5, 2265.63, 4456.89, 6561.91, 8573.68, 10487.15, 12298.4, 14004.3, 15602.28\r\n5.5, 2367.15, 4658.08, 6860.54, 8967.25, 10972.93, 12873.45, 14665.46, 16346.2\r\n6, 2450.32, 4823.16, 7106.01, 9291.39, 11373.81, 13348.99, 15213.38, 16964.05\r\n6.5, 2517.61, 4956.95, 7305.33, 9555.12, 11700.69, 13737.6, 15662.17, 17471.29\r\n7, 2571.36, 5064.02, 7465.19, 9767.1, 11964.03, 14051.42, 16025.47, 17882.95\r\n7.5, 2613.7, 5148.56, 7591.68, 9935.26, 12173.47, 14301.67, 16315.97, 18213.03\r\n8, 2646.53, 5214.25, 7690.26, 10066.67, 12337.64, 14498.42, 16545.06, 18474.15\r\n8.5, 2671.48, 5264.33, 7765.64, 10167.52, 12464.06, 14650.49, 16722.78, 18677.46\r\n9, 2689.94, 5301.54, 7821.89, 10243.09, 12559.22, 14765.48, 16857.78, 18832.62\r\n9.5, 2703.09, 5328.18, 7862.41, 10297.87, 12628.63, 14849.86, 16957.46, 18947.88\r\n10, 2711.91, 5346.21, 7890.07, 10335.61, 12676.9, 14909.09, 17028.06, 19030.22\r\n10.5, 2717.21, 5357.22, 7907.26, 10359.46, 12707.9, 14947.72, 17074.79, 19085.51\r\n11, 2719.66, 5362.55, 7915.95, 10372.01, 12724.83, 14969.54, 17102.02, 19118.65\r\n11.5, 2719.82, 5363.29, 7917.76, 10375.41, 12730.34, 14977.71, 17113.38, 19133.71\r\n12, 2718.14, 5360.35, 7914.04, 10371.43, 12726.63, 14974.81, 17111.84, 19134.07\r\n12.5, 2714.98, 5354.46, 7905.89, 10361.53, 12715.5, 14963, 17099.89, 19122.53\r\n13, 2710.66, 5346.22, 7894.2, 10346.89, 12698.43, 14944.03, 17079.56, 19101.4\r\n13.5, 2705.42, 5336.13, 7879.72, 10328.49, 12676.64, 14919.36, 17052.55, 19072.58\r\n14, 2699.47, 5324.6, 7863.04, 10307.15, 12651.12, 14890.18, 17020.22, 19037.64\r\n14.5, 2692.97, 5311.96, 7844.68, 10283.53, 12622.71, 14857.47, 16983.73, 18997.87\r\n15, 2686.05, 5298.47, 7825.03, 10258.15, 12592.06, 14822.04, 16944, 18954.35\r\n15.5, 2678.82, 5284.36, 7804.42, 10231.46, 12559.74, 14784.54, 16901.81, 18907.95\r\n16, 2671.39, 5269.8, 7783.12, 10203.82, 12526.19, 14745.53, 16857.79, 18859.39\r\n16.5, 2663.81, 5254.95, 7761.36, 10175.53, 12491.79, 14705.44, 16812.45, 18809.27\r\n17, 2656.15, 5239.92, 7739.31, 10146.83, 12456.83, 14664.64, 16766.24, 18758.07\r\n17.5, 2648.45, 5224.82, 7717.11, 10117.91, 12421.57, 14623.42, 16719.48, 18706.2\r\n18, 2640.76, 5209.71, 7694.9, 10088.94, 12386.19, 14582.03, 16672.46, 18653.97\r\n18.5, 2633.11, 5194.66, 7672.76, 10060.03, 12350.87, 14540.66, 16625.43, 18601.65\r\n19, 2625.51, 5179.72, 7650.77, 10031.3, 12315.73, 14499.47, 16578.55, 18549.47\r\n19.5, 2618, 5164.94, 7628.98, 10002.82, 12280.89, 14458.59, 16531.99, 18497.6\r\n20, 2610.59, 5150.33, 7607.46, 9974.67, 12246.41, 14418.12, 16485.87, 18446.16\r\n20.5, 2603.28, 5135.93, 7586.23, 9946.89, 12212.37, 14378.14, 16440.27, 18395.29\r\n21, 2596.09, 5121.76, 7565.32, 9919.51, 12178.83, 14338.72, 16395.28, 18345.07\r\n21.5, 2589.02, 5107.83, 7544.76, 9892.59, 12145.8, 14299.89, 16350.96, 18295.56\r\n22, 2582.08, 5094.15, 7524.57, 9866.12, 12113.34, 14261.7, 16307.34, 18246.82\r\n22.5, 2575.28, 5080.72, 7504.74, 9840.14, 12081.45, 14224.18, 16264.47, 18198.88\r\n23, 2568.6, 5067.56, 7485.29, 9814.64, 12050.15, 14187.34, 16222.36, 18151.78\r\n23.5, 2562.07, 5054.66, 7466.23, 9789.64, 12019.45, 14151.19, 16181.02, 18105.54\r\n24, 2555.66, 5042.02, 7447.55, 9765.14, 11989.35, 14115.74, 16140.48, 18060.16\r\n24.5, 2549.39, 5029.64, 7429.26, 9741.13, 11959.86, 14080.99, 16100.72, 18015.65\r\n25, 2543.26, 5017.52, 7411.34, 9717.62, 11930.96, 14046.94, 16061.75, 17972.01\r\n26, 2543.26, 5017.52, 7411.34, 9717.62, 11930.96, 14046.94, 16061.75, 17972.01\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Lateral Force; { Touring Tires } 255/75 R16\r\n#Library : Tire: Lateral Force\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireFy109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:29\r\n#VehCode Tire: Fy\r\n\r\nEXIT_PARSFILE Tires\\Fy\\TireFy109.par\r\n\r\n#BlueLink1 Tire: Lateral Force`255/75 R16` Touring Tires` , Lateral force\r\n\r\nENTER_PARSFILE Tires\\Fx\\TireFx109.par`08-02-2011`16:42:28\r\n#FullDataName Tire: Longitudinal Force`255/75 R16`Touring Tires\r\n#RadioCtrl0 0\r\n\r\nMU_REF_X 1.0\r\n\r\n*3D_XLabel Vertical load (N)\r\n*3D_YLabel Abs. slip ratio [Kappa] (-)\r\n*3D_ZLabel Absolute longitudinal tire force (N)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 8, 51 ! columns x rows\r\nFX_TIRE_CARPET\r\n0, 2819.41, 5638.82, 8458.24, 11277.65, 14097.06, 16916.47, 19735.88, 22555.3\r\n0.02, 1258.94, 2468.09, 3619.86, 4710.05, 5735.83, 6695.23, 7586.84, 8409.7\r\n0.04, 1993.59, 3916.87, 5758.7, 7512.6, 9173.94, 10739.23, 12205.7, 13571.17\r\n0.06, 2344.28, 4612.4, 6792.08, 8875.96, 10858.65, 12735.94, 14504.35, 16161.01\r\n0.08, 2516.82, 4955.83, 7304.36, 9554.74, 11701.28, 13739.45, 15665.47, 17476.15\r\n0.1, 2608.63, 5139.03, 7578.4, 9918.95, 12154.85, 14281.44, 16294.79, 18191.53\r\n0.12, 2660.42, 5242.66, 7733.87, 10126.21, 12413.81, 14591.92, 16656.52, 18604.16\r\n0.14, 2690.36, 5302.78, 7824.43, 10247.46, 12565.96, 14775.15, 16870.97, 18849.91\r\n0.16, 2707.35, 5337.12, 7876.51, 10317.67, 12654.69, 14882.77, 16997.83, 18996.3\r\n0.18, 2716.2, 5355.23, 7904.34, 10355.71, 12703.42, 14942.66, 17069.34, 19079.87\r\n0.2, 2719.69, 5362.66, 7916.21, 10372.54, 12725.75, 14971.02, 17104.25, 19121.85\r\n0.22, 2719.56, 5362.84, 7917.22, 10374.93, 12730.08, 14977.86, 17114.17, 19135.39\r\n0.24, 2716.91, 5357.99, 7910.7, 10367.29, 12721.88, 14969.69, 17106.6, 19129.01\r\n0.26, 2712.5, 5349.62, 7898.89, 10352.57, 12704.84, 14950.89, 17086.64, 19108.47\r\n0.28, 2706.85, 5338.77, 7883.33, 10332.85, 12681.51, 14924.53, 17057.82, 19077.79\r\n0.3, 2700.35, 5326.18, 7865.15, 10309.6, 12653.73, 14892.78, 17022.68, 19039.82\r\n0.32, 2693.25, 5312.4, 7845.14, 10283.88, 12622.82, 14857.24, 16983.05, 18996.67\r\n0.34, 2685.76, 5297.81, 7823.91, 10256.48, 12589.77, 14819.06, 16940.29, 18949.87\r\n0.36, 2678.02, 5282.71, 7801.88, 10227.99, 12555.32, 14779.14, 16895.42, 18900.59\r\n0.38, 2670.15, 5267.33, 7779.4, 10198.86, 12520, 14738.13, 16849.22, 18849.7\r\n0.4, 2662.23, 5251.82, 7756.71, 10169.41, 12484.24, 14696.53, 16802.26, 18797.88\r\n0.42, 2654.32, 5236.32, 7734, 10139.9, 12448.36, 14654.73, 16755, 18745.62\r\n0.44, 2646.46, 5220.92, 7711.41, 10110.51, 12412.59, 14613.01, 16707.76, 18693.33\r\n0.46, 2638.7, 5205.69, 7689.05, 10081.4, 12377.13, 14571.59, 16660.82, 18641.29\r\n0.48, 2631.05, 5190.68, 7667, 10052.68, 12342.09, 14530.64, 16614.36, 18589.74\r\n0.5, 2623.54, 5175.93, 7645.33, 10024.41, 12307.6, 14490.29, 16568.55, 18538.86\r\n0.52, 2616.18, 5161.47, 7624.06, 9996.66, 12273.71, 14450.63, 16523.48, 18488.76\r\n0.54, 2608.98, 5147.31, 7603.24, 9969.48, 12240.5, 14411.72, 16479.23, 18439.55\r\n0.56, 2601.95, 5133.48, 7582.88, 9942.89, 12207.98, 14373.62, 16435.88, 18391.3\r\n0.58, 2595.09, 5119.98, 7563, 9916.91, 12176.2, 14336.35, 16393.45, 18344.04\r\n0.6, 2588.4, 5106.81, 7543.6, 9891.54, 12145.16, 14299.94, 16351.97, 18297.83\r\n0.62, 2581.88, 5093.97, 7524.68, 9866.8, 12114.87, 14264.38, 16311.46, 18252.66\r\n0.64, 2575.53, 5081.47, 7506.24, 9842.68, 12085.33, 14229.7, 16271.92, 18208.56\r\n0.66, 2569.35, 5069.29, 7488.28, 9819.18, 12056.54, 14195.87, 16233.34, 18165.51\r\n0.68, 2563.33, 5057.43, 7470.79, 9796.28, 12028.47, 14162.9, 16195.72, 18123.52\r\n0.7, 2557.47, 5045.89, 7453.76, 9773.98, 12001.14, 14130.77, 16159.05, 18082.57\r\n0.72, 2551.78, 5034.66, 7437.19, 9752.27, 11974.51, 14099.47, 16123.31, 18042.65\r\n0.74, 2546.23, 5023.73, 7421.05, 9731.13, 11948.58, 14068.97, 16088.48, 18003.73\r\n0.76, 2540.84, 5013.09, 7405.35, 9710.55, 11923.33, 14039.26, 16054.54, 17965.8\r\n0.78, 2535.59, 5002.74, 7390.06, 9690.52, 11898.74, 14010.33, 16021.48, 17928.83\r\n0.8, 2530.49, 4992.66, 7375.18, 9671.01, 11874.79, 13982.14, 15989.26, 17892.79\r\n0.82, 2525.52, 4982.86, 7360.7, 9652.01, 11851.47, 13954.68, 15957.87, 17857.68\r\n0.84, 2520.68, 4973.31, 7346.59, 9633.52, 11828.76, 13927.93, 15927.28, 17823.45\r\n0.86, 2515.97, 4964.02, 7332.86, 9615.5, 11806.63, 13901.87, 15897.47, 17790.09\r\n0.88, 2511.39, 4954.98, 7319.49, 9597.96, 11785.07, 13876.48, 15868.42, 17757.57\r\n0.9, 2506.93, 4946.16, 7306.46, 9580.86, 11764.07, 13851.73, 15840.1, 17725.87\r\n0.92, 2502.58, 4937.58, 7293.77, 9564.21, 11743.6, 13827.61, 15812.5, 17694.95\r\n0.94, 2498.35, 4929.22, 7281.41, 9547.98, 11723.65, 13804.1, 15785.58, 17664.8\r\n0.96, 2494.22, 4921.07, 7269.36, 9532.16, 11704.21, 13781.17, 15759.34, 17635.4\r\n0.98, 2490.2, 4913.13, 7257.62, 9516.74, 11685.25, 13758.82, 15733.74, 17606.72\r\n1, 2486.29, 4905.39, 7246.17, 9501.7, 11666.76, 13737.01, 15708.77, 17578.73\r\n1.02, 2486.29, 4905.39, 7246.17, 9501.7, 11666.76, 13737.01, 15708.77, 17578.73\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire: Longitudinal Force; { Touring Tires } 255/75 R16\r\n#Library : Tire: Longitudinal Force\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : TireFx109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:28\r\n#VehCode Tire: Fx\r\n\r\nEXIT_PARSFILE Tires\\Fx\\TireFx109.par\r\n\r\n#BlueLink2 Tire: Longitudinal Force`255/75 R16` Touring Tires` , Longitudinal force\r\n\r\nENTER_PARSFILE Tires\\Camber_Thrust\\CamStiff109.par`08-02-2011`16:42:30\r\n#FullDataName Tire: Camber Thrust Coefficient`255/75 R16`Touring Tires\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nKGAMMA_TABLE LINEAR\r\n0, 0\r\n1127.76475, -5.0637\r\n2255.5295, -9.5404\r\n3383.29425, -13.704\r\n4511.059, -17.6355\r\n5638.82375, -21.3781\r\n6766.5885, -24.9597\r\n7894.35325, -28.3995\r\n9022.118, -31.7123\r\n10149.88275, -34.9094\r\n11277.6475, -38\r\n12405.41225, -40.9917\r\n13533.177, -43.8909\r\n14660.94175, -46.7031\r\n15788.7065, -49.433\r\n16916.47125, -52.0848\r\n18044.236, -54.6622\r\n19172.00075, -57.1685\r\n20299.7655, -59.6066\r\n21427.53025, -61.9791\r\n22555.295, -64.2887\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Tire: Camber Thrust Coefficient; { Touring Tires } 255/75 R16\r\n#Library : Tire: Camber Thrust Coefficient\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : CamStiff109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:30\r\n#VehCode Camber thrust\r\n\r\nEXIT_PARSFILE Tires\\Camber_Thrust\\CamStiff109.par\r\n\r\n#BlueLink3 Tire: Camber Thrust Coefficient`255/75 R16` Touring Tires` , Camber thrust\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Tire; { Touring Tires } 255/75 R16\r\n#Library : Tire\r\n#DataSet : 255/75 R16\r\n#Category: Touring Tires\r\n#FileID  : Tire112\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:33\r\n#VehCode Tire\r\n\r\nENTRY_NOTEFILE Tires\\Tire\\Tire112_note.txt\r\n1150 kg rated load\r\nEXIT_NOTEFILE Tires\\Tire\\Tire112_note.txt\r\n\r\nEXIT_PARSFILE Tires\\Tire\\Tire112.par\r\n\r\n#BlueLink9 Tire`255/75 R16` Touring Tires` , Left-front tire\r\n\r\n\r\n* RF tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink10 Tire`255/75 R16` Touring Tires` , Right-front tire\r\n\r\n* Rear components\r\niaxle 2\r\nsymbol_add <<axle>> 1\r\nWRITE_ADD_REFERENCE_FRAME_AXLE\r\nENTER_PARSFILE Suspensions\\Compliance_SA\\SuspCmpSA105.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Solid Axle Compliance, Springs, and Dampers`D-Class, SUV - Rear Solid Axle Comp.`CS D-Class\r\n#RingCtrl0 0\r\n*OPT_SPR 0\r\niside 1\r\nL_SPRINGS 1103.33\r\nL_DAMPERS 1103.33\r\n*R_SPRING_L 0.9989\r\n*R_SPRING_R 1.0001\r\n*R_DAMPER_L 1.003\r\n*R_DAMPER_R 0.995\r\n*CT_FX_L 0\r\n*CT_FX_R 0\r\n*CS_FY_L 0\r\n*CS_FY_R 0\r\n*CS_MZ_L 0\r\n*CS_MZ_R 0\r\n*CC_FX_L 0\r\n*CC_FX_R 0\r\n*CI_FY_L 0\r\n*CI_FY_R 0\r\n*CI_MZ_L 0\r\n*CI_MZ_R 0\r\n*C_LAT_AXLE 5.3133E-04\r\n*C_LONG_AXLE 4.6049E-04\r\n*L_SPG_ADJ_L 0\r\n*L_SPG_ADJ_R 0\r\nDAUX 0\r\nL_JNC_STOPS 1100\r\nL_REB_STOPS 1100\r\n*R_JOUNCE_L 1\r\n*R_JOUNCE_R 1\r\n*R_REBOUND_L 1\r\n*R_REBOUND_R 1\r\n\r\nC_LAT_AXLE_COEFFICIENT 5.3133E-04\r\nC_LONG_AXLE_COEFFICIENT 4.6049E-04\r\nL_SPG_ADJ 0\r\n#BlueLink1 Suspension: Shock Absorber`Big SUV Damping` ` , Left shock absorber\r\n\r\nENTER_PARSFILE Suspensions\\Aux_Roll\\AuxMx108.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Auxiliary Roll Moment`No Auxiliary Roll Moment`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nMX_AUX_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Auxiliary Roll Moment; No Auxiliary Roll Moment\r\n#Library : Suspension: Auxiliary Roll Moment\r\n#DataSet : No Auxiliary Roll Moment\r\n#Category:\r\n#FileID  : AuxMx108\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Aux. Roll Moment\r\n\r\nEXIT_PARSFILE Suspensions\\Aux_Roll\\AuxMx108.par\r\n\r\n#BlueLink2 Suspension: Auxiliary Roll Moment`No Auxiliary Roll Moment` ` , Roll moment\r\n\r\nENTER_PARSFILE Suspensions\\Jounce_Rebound\\JncRb107.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Jounce and Rebound Stops`+120 mm / -60 mm`Jounce and Rebound Stops\r\n#RingCtrl0 LINEAR\r\n#RingCtrl1 LINEAR\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n\r\n#DiagramOne0\r\nF_JNC_STOP_TABLE LINEAR\r\n118, 0\r\n119, 0\r\n120, 10000\r\nENDTABLE\r\n#DiagramOne1\r\nF_REB_STOP_TABLE LINEAR\r\n-60, -10000\r\n-59, 0\r\n-58, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Jounce and Rebound Stops; { Jounce and Rebound Stops } +120 mm / -60 mm\r\n#Library : Suspension: Jounce and Rebound Stops\r\n#DataSet : +120 mm / -60 mm\r\n#Category: Jounce and Rebound Stops\r\n#FileID  : JncRb107\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode\r\n\r\nEXIT_PARSFILE Suspensions\\Jounce_Rebound\\JncRb107.par\r\n\r\n#BlueLink5 Suspension: Jounce and Rebound Stops`+120 mm / -60 mm` Jounce and Rebound Stops` , Left jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 0.9989\r\nCMP_DAMP_COEFFICIENT 1.003\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT 0\r\nCS_MZ_COEFFICIENT 0\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nCMP_JSTOP_COEFFICIENT 1\r\nCMP_RSTOP_COEFFICIENT 1\r\nENTER_PARSFILE Suspensions\\Springs\\Spring118.par`08-02-2011`16:42:34\r\n#FullDataName Suspension: Spring`40 N/mm`\r\n#RingCtrl0 COEFFICIENT\r\nFS_COMP_COEFFICIENT 40\r\nFS_EXT_COEFFICIENT 40\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nSPRING_COMP_BETA 2\r\nSPRING_EXT_BETA 2\r\n*SCALAR 40\r\n*OFFSET 20\r\n\r\nFS_COMP_OFFSET 20\r\nFS_EXT_OFFSET -20\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Spring; 40 N/mm\r\n#Library : Suspension: Spring\r\n#DataSet : 40 N/mm\r\n#Category:\r\n#FileID  : Spring118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:34\r\n#VehCode Spring Alone\r\n\r\nEXIT_PARSFILE Suspensions\\Springs\\Spring118.par\r\n\r\n#BlueLink0 Suspension: Spring`40 N/mm` ` , Left\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\niside 2\r\n#BlueLink4 Suspension: Shock Absorber`Big SUV Damping` ` , Right shock absorber\r\n\r\n#BlueLink6 Suspension: Jounce and Rebound Stops`+120 mm / -60 mm` Jounce and Rebound Stops` , Right jounce / rebound stops\r\n\r\nCMP_SPR_SEAT_COEFFICIENT 1.0001\r\nCMP_DAMP_COEFFICIENT 0.995\r\nCT_FX_COEFFICIENT 0\r\nCS_FY_COEFFICIENT 0\r\nCS_MZ_COEFFICIENT 0\r\nCC_FX_COEFFICIENT 0\r\nCI_FY_COEFFICIENT 0\r\nCI_MZ_COEFFICIENT 0\r\nL_SPG_ADJ 0\r\nCMP_JSTOP_COEFFICIENT 1\r\nCMP_RSTOP_COEFFICIENT 1\r\n#BlueLink3 Suspension: Spring`40 N/mm` ` , Right\r\n\r\nOPT_EXT_SP 0\r\nFS_OFFSET 0\r\nCMP_OFFSET 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Solid Axle Compliance, Springs, and Dampers; { CS D-Class } D-Class, SUV - Rear Solid Axle Comp.\r\n#Library : Suspension: Solid Axle Compliance, Springs, and Dampers\r\n#DataSet : D-Class, SUV - Rear Solid Axle Comp.\r\n#Category: CS D-Class\r\n#FileID  : SuspCmpSA105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Solid axle\r\n\r\nEXIT_PARSFILE Suspensions\\Compliance_SA\\SuspCmpSA105.par\r\n\r\n#BlueLink22 Suspension: Solid Axle Compliance, Springs, and Dampers`D-Class, SUV - Rear Solid Axle Comp.` CS D-Class` , Rear compliance\r\n\r\nENTER_PARSFILE Suspensions\\Kin_Solid\\SaKin105.par`08-02-2011`16:42:37\r\n#FullDataName Suspension: Solid Axle System Kinematics`D-Class, SUV - Rear Suspension`CS D-Class\r\nOPT_NL_AXLE 1\r\niside 1\r\nL_TRACK 1565\r\nM_US 100\r\nIA 1.5\r\n*IW_L 0.9\r\n*IW_R 0.9\r\nR_ROLL_STEER 0.1\r\nY_CL_SUSP 0\r\n*TOE_L 0\r\n*TOE_R 0\r\n*CAMBER_L 0\r\n*CAMBER_R 0\r\nH_CG_AXLE 360\r\n*JNC_DESIGN_L 0\r\n*JNC_DESIGN_R 0\r\nR_US_STR 0\r\n\r\n#RingCtrl0 1\r\nOPT_JNC_DESIGN 1\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n\r\nENTER_PARSFILE Suspensions\\Dive\\Dive105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Dive Angle (Caster Change)`Rear Hotchkiss - No Dive`Hotchkiss Rear Axle\r\n#RingCtrl0 CONSTANT\r\n*SCALAR 0\r\n\r\nSUSP_DIVE_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nSUSP_DIVE_AXLE_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Dive Angle (Caster Change); { Hotchkiss Rear Axle } Rear Hotchkiss - No Dive\r\n#Library : Suspension: Dive Angle (Caster Change)\r\n#DataSet : Rear Hotchkiss - No Dive\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : Dive105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Dive table\r\n\r\nENTRY_NOTEFILE Suspensions\\Dive\\Dive105_note.txt\r\nGeneric Hotchkiss Rear Axle Dive angle change vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Dive\\Dive105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Dive\\Dive105.par\r\n\r\n#BlueLink0 Suspension: Dive Angle (Caster Change)`Rear Hotchkiss - No Dive` Hotchkiss Rear Axle` , Axle dive\r\n\r\nENTER_PARSFILE Suspensions\\Longitudinal\\SusX105.par`08-02-2011`16:42:35\r\n#FullDataName Suspension: Longitudinal Position`Rear Hotchkiss - Longitudinal Movement`Hotchkiss Rear Axle\r\n#RingCtrl0 SPLINE\r\n\r\n#DiagramOne0\r\nSUSP_X_TABLE SPLINE\r\n-150, 5.1612\r\n-135, 2.79277\r\n-120, 0.841255\r\n-105, -0.695023\r\n-90, -1.8184\r\n-75, -2.53133\r\n-60, -2.83607\r\n-45, -2.73441\r\n-30, -2.22759\r\n-15, -1.3162\r\n0, 0\r\n15, 1.72199\r\n30, 3.85147\r\n45, 6.39054\r\n60, 9.34103\r\n75, 12.703\r\n90, 16.4714\r\n105, 20.6284\r\n120, 25.1262\r\n135, 29.8517\r\n150, 34.583\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nSUSP_X_AXLE_TABLE SPLINE\r\n-150, 5.1612\r\n-135, 2.79277\r\n-120, 0.841255\r\n-105, -0.695023\r\n-90, -1.8184\r\n-75, -2.53133\r\n-60, -2.83607\r\n-45, -2.73441\r\n-30, -2.22759\r\n-15, -1.3162\r\n0, 0\r\n15, 1.72199\r\n30, 3.85147\r\n45, 6.39054\r\n60, 9.34103\r\n75, 12.703\r\n90, 16.4714\r\n105, 20.6284\r\n120, 25.1262\r\n135, 29.8517\r\n150, 34.583\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Longitudinal Position; { Hotchkiss Rear Axle } Rear Hotchkiss - Longitudinal Movement\r\n#Library : Suspension: Longitudinal Position\r\n#DataSet : Rear Hotchkiss - Longitudinal Movement\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : SusX105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:35\r\n#VehCode Longitudinal Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Longitudinal\\SusX105_note.txt\r\nGeneric Hotchkiss Rear Axle Longitudinal movement vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Longitudinal\\SusX105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Longitudinal\\SusX105.par\r\n\r\n#BlueLink1 Suspension: Longitudinal Position`Rear Hotchkiss - Longitudinal Movement` Hotchkiss Rear Axle` , Axle X movement\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL204.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Rear Solid Drive Axle`Misc. Parts\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\misc\\solid_axle.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.502 0.502 0.502\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.007\r\nSET_OFFSET_Z 0\r\nX_REF_LENGTH 1\r\nY_REF_LENGTH 1700\r\nZ_REF_LENGTH 1\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 55\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Misc. Parts } Rear Solid Drive Axle\r\n#Library : Animator: Shape File Link\r\n#DataSet : Rear Solid Drive Axle\r\n#Category: Misc. Parts\r\n#FileID  : AniSTL204\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL204.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Rear Solid Drive Axle` Misc. Parts` , Animator\r\n\r\nENTER_PARSFILE Suspensions\\Lateral\\SusLat105.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position`Rear Hotchkiss - No Lateral Movement`Hotchkiss Rear Axle\r\n#RingCtrl0 CONSTANT\r\nSUSP_LAT_CONSTANT 0\r\nSUSP_LAT_AXLE_JOUNCE_CONSTANT 0\r\n#RadioCtrl0 1\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position; { Hotchkiss Rear Axle } Rear Hotchkiss - No Lateral Movement\r\n#Library : Suspension: Lateral Position\r\n#DataSet : Rear Hotchkiss - No Lateral Movement\r\n#Category: Hotchkiss Rear Axle\r\n#FileID  : SusLat105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral\\SusLat105_note.txt\r\nGeneric Hotchkiss Rear Axle Lateral Movement vs. Jounce.\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral\\SusLat105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral\\SusLat105.par\r\n\r\n#BlueLink3 Suspension: Lateral Position`Rear Hotchkiss - No Lateral Movement` Hotchkiss Rear Axle` , Axle Y movement - jounce\r\n\r\nENTER_PARSFILE Suspensions\\Lateral_Roll\\SusLatR101.par`08-02-2011`16:42:36\r\n#FullDataName Suspension: Lateral Position with Roll`Rear Hotchkiss - Lat. Movement vs. Roll`Hotchiss Rear Axle\r\n#RingCtrl0 SPLINE\r\n\r\n! Note: if *TABLE_KEYWORD is not set to \"SUSP_Y_AXLE_ROLL\" then Y values read from the table will be reversed.\r\n*TABLE_KEYWORD SUSP_Y_AXLE_ROLL\r\n\r\n#DiagramOne0\r\nSUSP_Y_AXLE_ROLL_TABLE SPLINE\r\n-10.0528, -16.7928\r\n-8.3636, -14.0137\r\n-6.68194, -11.2296\r\n-5.00627, -8.43574\r\n-3.33505, -5.63126\r\n-1.66679, -2.81808\r\n0, 0\r\n1.66679, 2.81808\r\n3.33505, 5.63126\r\n5.00627, 8.43574\r\n6.68194, 11.2296\r\n8.3636, 14.0137\r\n10.0528, 16.7928\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Lateral Position with Roll; { Hotchiss Rear Axle } Rear Hotchkiss - Lat. Movement vs. Roll\r\n#Library : Suspension: Lateral Position with Roll\r\n#DataSet : Rear Hotchkiss - Lat. Movement vs. Roll\r\n#Category: Hotchiss Rear Axle\r\n#FileID  : SusLatR101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:36\r\n#VehCode Lateral Movement\r\n\r\nENTRY_NOTEFILE Suspensions\\Lateral_Roll\\SusLatR101_note.txt\r\nGeneric Hotchkiss Rear Axle Lateral Movement vs. Roll\r\n\r\nEXIT_NOTEFILE Suspensions\\Lateral_Roll\\SusLatR101_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Lateral_Roll\\SusLatR101.par\r\n\r\n#BlueLink4 Suspension: Lateral Position with Roll`Rear Hotchkiss - Lat. Movement vs. Roll` Hotchiss Rear Axle` , Axle Y movement - roll\r\n\r\nSUSP_AXLE_ROLL_STEER_COEFFICIENT 0.1\r\nY_LENGTH 1565\r\nIW 0.9\r\nA_TOE 0\r\nA_CAMBER 0\r\nJNC_DESIGN 0\r\n\r\niside 2\r\nIW 0.9\r\nA_TOE 0\r\nA_CAMBER 0\r\nJNC_DESIGN 0\r\n\r\nLOG_ENTRY Used Dataset: Suspension: Solid Axle System Kinematics; { CS D-Class } D-Class, SUV - Rear Suspension\r\n#Library : Suspension: Solid Axle System Kinematics\r\n#DataSet : D-Class, SUV - Rear Suspension\r\n#Category: CS D-Class\r\n#FileID  : SaKin105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:37\r\n#VehCode Solid Axle\r\n\r\nENTRY_NOTEFILE Suspensions\\Kin_Solid\\SaKin105_note.txt\r\nGeneric Hotchkiss Rear Axle kinematics generated by SuspensionSim.\r\nEXIT_NOTEFILE Suspensions\\Kin_Solid\\SaKin105_note.txt\r\n\r\nEXIT_PARSFILE Suspensions\\Kin_Solid\\SaKin105.par\r\n\r\n#BlueLink23 Suspension: Solid Axle System Kinematics`D-Class, SUV - Rear Suspension` CS D-Class` , Rear kinematics (solid axle)\r\n\r\n\r\n* LR tire\r\niside 1\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> L<<axle>>\r\n#BlueLink13 Tire`255/75 R16` Touring Tires` , Left-rear tire\r\n\r\n\r\n* RR tire\r\niside 2\r\nWRITE_ADD_REFERENCE_FRAME_WHEEL\r\nsymbol_push <<tire>> R<<axle>>\r\n#BlueLink14 Tire`255/75 R16` Touring Tires` , Right-rear tire\r\n\r\nWRITE_ADD_REFERENCE_FRAME_BODY\r\nENTER_PARSFILE Vehicles\\Sprung_Mass\\SprMass113.par`08-02-2011`16:42:22\r\n#FullDataName Vehicle: Sprung Mass`D-Class, SUV Sprung Mass`CS D-Class\r\n#VehCode Rigid Sprung Mass\r\n#RingCtrl0 0\r\nX_LENGTH 2600\r\nY_LENGTH 1500\r\niaxle 2\r\niside 1\r\nLX_H 3725\r\nH_H 550\r\nH_CG_SU 650\r\nLX_AXLE 2600\r\nLX_CG_SU 1050\r\nM_SU 1430\r\nIXX_SU 700.7\r\nIYY_SU 2059.2\r\nIZZ_SU 2059.2\r\nIXZ_SU 0\r\nRX_SGUI 0.700\r\nRY_SGUI 1.200\r\nRZ_SGUI 1.200\r\nY_CG_SU 0\r\nY_H 0\r\nIXY_SU 0\r\nIYZ_SU 0\r\nZ_LENGTH 1679\r\nY_LENGTH 1820\r\n*HWC_LF 350\r\n*HWC_RF 350\r\n*HWC_LR 330\r\n*HWC_RR 330\r\n\r\nH_WC 330\r\niside 2\r\nH_WC 330\r\niaxle 1\r\niside 1\r\nH_WC 350\r\niside 2\r\nH_WC 350\r\niaxle 2\r\niside 1\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Sprung Mass; { CS D-Class } D-Class, SUV Sprung Mass\r\n#Library : Vehicle: Sprung Mass\r\n#DataSet : D-Class, SUV Sprung Mass\r\n#Category: CS D-Class\r\n#FileID  : SprMass113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:22\r\n#VehCode Rigid Sprung Mass\r\n\r\nEXIT_PARSFILE Vehicles\\Sprung_Mass\\SprMass113.par\r\n\r\n#BlueLink0 Vehicle: Sprung Mass`D-Class, SUV Sprung Mass` CS D-Class` , Sprung mass\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Main\\Aero110.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Basic`D-Class, SUV Aero`CS D-Class\r\n#CheckBox0 0\r\n\r\nX_REF_AERO -1300\r\nY_REF_AERO 0\r\nH_REF_AERO 0\r\nL_REF_AERO 2600\r\nAREA_AERO 2.8\r\nD_AIR 1.206\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFX_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.45\r\n-160, -0.45\r\n-90, 0\r\n-20, 0.325\r\n0, 0.3\r\n20, 0.325\r\n90, 0\r\n160, -0.45\r\n180, -0.45\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fx (Drag) Coefficient; Drag Coefficient = 0.30\r\n#Library : Aerodynamics: Fx (Drag) Coefficient\r\n#DataSet : Drag Coefficient = 0.30\r\n#Category:\r\n#FileID  : AirCFx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Drag vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\nA nominal drag coefficent of 0.3 is typical of contemporary mid-size sedans, such as Honda Accord, Toyota Camry, and Ford Fusion.\r\n\r\nThe drag coefficient typically increases a few percent as the vehicle develops an aerodynamic sidelsip angle, peaking around 20 degrees. Drag reduces as sidelip increases because the component of the airspeed in the vehicle X direction reduces.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fx\\AirCFx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fx\\AirCFx104.par\r\n\r\n#BlueLink0 Aerodynamics: Fx (Drag) Coefficient`Drag Coefficient = 0.30` ` , Long. force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par`08-02-2011`16:43:56\r\n#FullDataName Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFY_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.5\r\n0, 0\r\n90, 0.5\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fy (Side Force) Coefficient; Side Force Coefficient = 0.5 at 90 deg\r\n#Library : Aerodynamics: Fy (Side Force) Coefficient\r\n#DataSet : Side Force Coefficient = 0.5 at 90 deg\r\n#Category:\r\n#FileID  : AirCFy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aero side force vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\nThe side force coefficient is typically larger then the drag coefficent, because the width of the vehiicle is less than the length, contirbuting to drag in the lateral direction. Also, the calculation of the coefficient is based on the projected frontal area of the car, while the side force is developed against the larger side area.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fy\\AirCFy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fy\\AirCFy104.par\r\n\r\n#BlueLink1 Aerodynamics: Fy (Side Force) Coefficient`Side Force Coefficient = 0.5 at 90 deg` ` , Lateral force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par`08-03-2011`08:02:01\r\n#FullDataName Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nFZ_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, 0.4\r\n-135, 0.45\r\n-90, 0.35\r\n-20, 0.185\r\n0, 0.18\r\n20, 0.185\r\n90, 0.35\r\n135, 0.45\r\n180, 0.4\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Fz (Lift) Coefficient; Lift Coefficient = 0.18\r\n#Library : Aerodynamics: Fz (Lift) Coefficient\r\n#DataSet : Lift Coefficient = 0.18\r\n#Category:\r\n#FileID  : AirCFz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:01\r\n#VehCode Lift vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\nNearly all passenger cars develop a small positive lift force at highway speeeds.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Fz\\AirCFz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Fz\\AirCFz104.par\r\n\r\n#BlueLink2 Aerodynamics: Fz (Lift) Coefficient`Lift Coefficient = 0.18` ` , Vertical force\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par`08-02-2011`16:43:55\r\n#FullDataName Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMX_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, -0.3\r\n0, 0\r\n90, 0.3\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mx (Roll Moment) Coefficient; Roll Moment Coefficient = 0.3 at 90 deg\r\n#Library : Aerodynamics: Mx (Roll Moment) Coefficient\r\n#DataSet : Roll Moment Coefficient = 0.3 at 90 deg\r\n#Category:\r\n#FileID  : AirCMx104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:55\r\n#VehCode Aero Mx vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\n\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mx\\AirCMx104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mx\\AirCMx104.par\r\n\r\n#BlueLink3 Aerodynamics: Mx (Roll Moment) Coefficient`Roll Moment Coefficient = 0.3 at 90 deg` ` , Roll moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par`08-03-2011`08:02:56\r\n#FullDataName Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15`\r\n#RingCtrl0 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMY_AERO_SHAPING_TABLE SPLINE_FLAT\r\n-180, -0.25\r\n-160, -0.25\r\n-90, 0\r\n-20, 0.17\r\n0, 0.15\r\n20, 0.17\r\n90, 0\r\n160, -0.25\r\n180, -0.25\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: My (Pitch Moment) Coefficient; Pitch Moment Coefficient = -0.15\r\n#Library : Aerodynamics: My (Pitch Moment) Coefficient\r\n#DataSet : Pitch Moment Coefficient = -0.15\r\n#Category:\r\n#FileID  : AirCMy104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:02:56\r\n#VehCode Aero My vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_My\\AirCMy104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_My\\AirCMy104.par\r\n\r\n#BlueLink4 Aerodynamics: My (Pitch Moment) Coefficient`Pitch Moment Coefficient = -0.15` ` , Pitch moment\r\n\r\nENTER_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par`08-03-2011`08:03:05\r\n#FullDataName Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg`\r\n#RingCtrl0 SPLINE\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nMZ_AERO_SHAPING_TABLE SPLINE\r\n-180, 0\r\n-90, 0.05\r\n0, 0\r\n90, -0.05\r\n180, 0\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Mz (Yaw Moment) Coefficient; Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Library : Aerodynamics: Mz (Yaw Moment) Coefficient\r\n#DataSet : Yaw Moment Coefficent = 0.05 at 90 deg\r\n#Category:\r\n#FileID  : AirCMz104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-03-2011 08:03:05\r\n#VehCode Aero Mz vs aero slip\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\nThe aerodynamic moments relate the location of the aerodynamic center of pressure to the location of the aerodynamic reference point.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Mz\\AirCMz104_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Mz\\AirCMz104.par\r\n\r\n#BlueLink5 Aerodynamics: Mz (Yaw Moment) Coefficient`Yaw Moment Coefficent = 0.05 at 90 deg` ` , Yaw moment\r\n\r\n\r\nLOG_ENTRY Used Dataset: Aerodynamics: Basic; { CS D-Class } D-Class, SUV Aero\r\n#Library : Aerodynamics: Basic\r\n#DataSet : D-Class, SUV Aero\r\n#Category: CS D-Class\r\n#FileID  : Aero110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:56\r\n#VehCode Aerodynamics\r\n\r\nENTRY_NOTEFILE Aerodynamics\\Aero_Main\\Aero110_note.txt\r\nAccording to SAE convention, the reference point is located at the midpoint of the wheelbase, the midpoint of the track, at ground level., and the reference length is equal to the wheelbase.\r\nEXIT_NOTEFILE Aerodynamics\\Aero_Main\\Aero110_note.txt\r\n\r\nEXIT_PARSFILE Aerodynamics\\Aero_Main\\Aero110.par\r\n\r\n#BlueLink1 Aerodynamics: Basic`D-Class, SUV Aero` CS D-Class` , Aerodynamics\r\n\r\nENTER_PARSFILE Animator\\Vehicles\\AniVeh116.par`08-02-2011`16:43:35\r\n#FullDataName Animator: Vehicles and Sensor Targets`D-Class, SUV`D-Class Vehicles\r\n#CheckBox0 1\r\n#CheckBox1 0\r\n#CheckBox2 1\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nOBJ_X_LENGTH 2619\r\nOBJ_Y_LENGTH 1820\r\nOBJ_Z_LENGTH 1679\r\n*DZ_V -40\r\n*LAT_WC 1600\r\n*LAT_WC_2 1600\r\n*HWC 280\r\n*WHEEL_RATIO 1.25\r\nDZ_OBJECT 0\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_OFFSET_X -2.619\r\nSET_OFFSET_Y 0.8\r\nSET_OFFSET_Z 0.266\r\nTIRE_ANI_PARSFILE Animator\\STL\\AniSTL114.par\r\nSET_SCALE_X 1.25\r\nSET_SCALE_Y 1.25\r\nSET_SCALE_Z 1.25\r\nSET_ANGLE_X 180\r\nSET_OFFSET_X -2.619\r\nSET_OFFSET_Y -0.8\r\nSET_OFFSET_Z 0.266\r\nWRITE_ADD_REFERENCE_FRAME_SHADOW\r\nENTER_PARSFILE Animator\\STL\\AniSTL104.par`08-02-2011`16:43:50\r\n#FullDataName Animator: Shape File Link`Vehicle Shadow Shape`Vehicle Shadow\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\vehicle_shadows\\shadow.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.125 0.125 0.125\r\nX_REF_LENGTH 2690\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1220\r\n*TRANSPARENCY 0.8\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.8\r\nshow_front on\r\nshow_back off\r\n#MiscYellow0\r\ntranclucent_fix on\r\n#ENDMYellow\r\n\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Vehicle Shadow } Vehicle Shadow Shape\r\n#Library : Animator: Shape File Link\r\n#DataSet : Vehicle Shadow Shape\r\n#Category: Vehicle Shadow\r\n#FileID  : AniSTL104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:50\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL104.par\r\n\r\n#BlueLink0 Animator: Shape File Link`Vehicle Shadow Shape` Vehicle Shadow` , Shadow\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nDZ_OBJECT -0.04\r\nWRITE_ADD_REFERENCE_FRAME_OBJECT\r\nENTER_PARSFILE Animator\\STL_Groups\\StlGroup138.par`08-02-2011`16:43:38\r\n#FullDataName Animator: Shape Assembly`D-Class, SUV`CS D-Class\r\n*COLOR .36 .117 .117\r\n*OFFSET_X 0\r\n*OFFSET_Y 0\r\n*OFFSET_Z 0.3\r\n*X_REF_LENGTH 2850\r\n*Y_REF_LENGTH 1900\r\n*Z_REF_LENGTH 1700\r\n*IMAGE_FIT_MODE 3\r\n#CheckBox0 0\r\n#CheckBox2 0\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n#CheckBox5 1\r\n\r\n#RingCtrl0 3\r\n#RingCtrl1 2\r\n#RingCtrl2 2\r\nENTER_PARSFILE Animator\\STL\\AniSTL170.par`08-02-2011`16:43:43\r\n#FullDataName Animator: Shape File Link`SUV: Body`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\body.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0 0 .5\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 1\r\nUSE_RUN_COLOR\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Body\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Body\r\n#Category: CS SUV\r\n#FileID  : AniSTL170\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:43\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL170.par\r\n\r\n#BlueLink0 Animator: Shape File Link`SUV: Body` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL174.par`08-02-2011`16:43:43\r\n#FullDataName Animator: Shape File Link`SUV: Body Trim (Gray)`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\body_trim.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Body Trim (Gray)\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Body Trim (Gray)\r\n#Category: CS SUV\r\n#FileID  : AniSTL174\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:43\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL174.par\r\n\r\n#BlueLink1 Animator: Shape File Link`SUV: Body Trim (Gray)` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL171.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Details`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\details.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Details\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Details\r\n#Category: CS SUV\r\n#FileID  : AniSTL171\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL171.par\r\n\r\n#BlueLink2 Animator: Shape File Link`SUV: Details` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL172.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Interior`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\interior.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.314 0.314 0.314\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Interior\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Interior\r\n#Category: CS SUV\r\n#FileID  : AniSTL172\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL172.par\r\n\r\n#BlueLink3 Animator: Shape File Link`SUV: Interior` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL175.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Seats`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\seats.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.753 0.753 0.753\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Seats\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Seats\r\n#Category: CS SUV\r\n#FileID  : AniSTL175\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL175.par\r\n\r\n#BlueLink4 Animator: Shape File Link`SUV: Seats` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL176.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Steering Wheel`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\steering_wheel.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Steering Wheel\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Steering Wheel\r\n#Category: CS SUV\r\n#FileID  : AniSTL176\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL176.par\r\n\r\n#BlueLink5 Animator: Shape File Link`SUV: Steering Wheel` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL173.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Windows`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\windows.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.188 0.188 0.188\r\n*SPECULAR 0.9\r\n*TRANSPARENCY 0.85\r\nSMOOTH_MAX_ANGLE 45\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nset_transparency 0.85\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0.9 0.9 0.9\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Windows\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Windows\r\n#Category: CS SUV\r\n#FileID  : AniSTL173\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL173.par\r\n\r\n#BlueLink6 Animator: Shape File Link`SUV: Windows` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nENTER_PARSFILE Animator\\STL\\AniSTL177.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Driver`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\driver\\driver.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 0.878 0.878 0.878\r\n*SPECULAR 0\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 0 0 0\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Driver\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Driver\r\n#Category: CS SUV\r\n#FileID  : AniSTL177\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL177.par\r\n\r\n#BlueLink13 Animator: Shape File Link`SUV: Driver` CS SUV` , Shape File\r\n\r\nset_offset_x 0\r\nset_offset_y 0\r\nset_offset_z 0.3\r\nx_ref_length 2850\r\ny_ref_length 1900\r\nz_ref_length 1700\r\n\r\n#BlueLink17 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape Assembly; { CS D-Class } D-Class, SUV\r\n#Library : Animator: Shape Assembly\r\n#DataSet : D-Class, SUV\r\n#Category: CS D-Class\r\n#FileID  : StlGroup138\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:38\r\n#VehCode Shape Group\r\n\r\nEXIT_PARSFILE Animator\\STL_Groups\\StlGroup138.par\r\n\r\n#BlueLink1 Animator: Shape Assembly`D-Class, SUV` CS D-Class` , Vehicle body\r\n\r\nENTER_PARSFILE Animator\\Sound\\Set\\SndSet105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Set`Gasoline Engine Vehicle`General Vehicle Sounds\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power Off`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_0.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_brake_torque -50; ! maximum engine braking torque\r\ndefine_output v_mod2 = if_gt_0_then(m_engout, 0, pow(m_engout/max_brake_torque, 0.5));\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod2\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod2\r\nANI_v_mod2\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod124\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod124.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power Off Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Power Off Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 4000\r\nSOUNDMOD_INPUT_HIGH 8000\r\nSOUNDMOD_INPUT_MAX 12000\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power Off Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power Off Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod125\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod125.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power Off Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Modifier`Frequency with RPM`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Frequency with RPM\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency with RPM\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod126\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\nThis modifier is based on a recording of a 4 cyl engine at 3500 RPM\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod126_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod126.par\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power Off\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power Off\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\nThis sound set uses a sample recorded at closed throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp110_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp110.par\r\n\r\n#BlueLink0 Animator: Sound Sample`4 Cyl. - Power Off` Gas Engine Sounds` , Sample 1\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`4 Cyl. - Power On`Gas Engine Sounds\r\n\r\nADD_3D_SOUND Animator\\Audio\\Engine\\Generic-Engine-02_L4_2.4L_1.0-Load_03-Mid-RPM.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 1.0\r\nSOUND_VOL_MIN 0.9\r\nSOUND_VOL_MAX 10.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.0\r\nSOUND_FREQ_MAX 20.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Load Effect`Gas Engine Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter max_torque 265\r\ndefine_output v_mod1 = if_gt_0_then(m_engout, pow(m_engout/max_torque, 0.5), 0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod1\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 1.0\r\nSOUNDMOD_INPUT_MAX 1.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.0\r\n\r\nWRT_v_mod1\r\nANI_v_mod1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Load Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Load Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod127\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\nThis modifer is to be applied to power-on conditions, i.e, when the engine torque is positive.\r\nEXIT_NOTEFILE Animator\\Sound\\Modifier\\SndMod127_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod127.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Power On Loudness: Load Effect` Gas Engine Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Power On Loudness: Speed Effect`Gas Engine Sound Modifiers\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME av_eng\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 3500.0\r\nSOUNDMOD_INPUT_HIGH 7000.0\r\nSOUNDMOD_INPUT_MAX 70000.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 20.0\r\n\r\nWRT_av_eng\r\nANI_av_eng\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Gas Engine Sound Modifiers } Power On Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Power On Loudness: Speed Effect\r\n#Category: Gas Engine Sound Modifiers\r\n#FileID  : SndMod128\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod128.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Power On Loudness: Speed Effect` Gas Engine Sound Modifiers` , Playback modification 2\r\n\r\n#BlueLink2 Animator: Sound Modifier`Frequency with RPM` Gas Engine Sound Modifiers` , Playback modification 3\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Gas Engine Sounds } 4 Cyl. - Power On\r\n#Library : Animator: Sound Sample\r\n#DataSet : 4 Cyl. - Power On\r\n#Category: Gas Engine Sounds\r\n#FileID  : SndSmp111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\nThis sound set uses a sample recorded at wide open throttle and 3500 RPM, for a 4 cylinder engine.\r\nEXIT_NOTEFILE Animator\\Sound\\Sample\\SndSmp111_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp111.par\r\n\r\n#BlueLink1 Animator: Sound Sample`4 Cyl. - Power On` Gas Engine Sounds` , Sample 2\r\n\r\n\r\nENTER_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par`08-02-2011`16:43:36\r\n#FullDataName Animator: Sound Sample`Wind Noise`Wind Noise\r\n\r\nADD_3D_SOUND Animator\\Audio\\Environment\\Wind_1_Mono.WAV\r\n#CheckBox0 1\r\nLOOP_SOUND on\r\n\r\n#RingCtrl0 Default\r\nSOUND_AUTO_START Default\r\n\r\nSOUND_VOL_MULT 0.3\r\nSOUND_VOL_MIN 0.01\r\nSOUND_VOL_MAX 9.0\r\nSOUND_FREQ_MULT 1.0\r\nSOUND_FREQ_MIN 0.01\r\nSOUND_FREQ_MAX 9.0\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Loudness: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_parameter air_speed_ref 50; units = km/h;\r\ndefine_output v_mod3 = pow(vAir/air_speed_ref, 3.0);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 VOLUME\r\nADD_SOUND_MODIFIER VOLUME\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod3\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 1.0\r\nSOUNDMOD_OUTPUT_HIGH 2.0\r\nSOUNDMOD_OUTPUT_MAX 3.0\r\n\r\nWRT_v_mod3\r\nANI_v_mod3\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Loudness: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Loudness: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod122.par\r\n\r\n#BlueLink0 Animator: Sound Modifier`Loudness: Speed Effect` Wind Sound Modifiers` , Playback modification 1\r\n\r\nENTER_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par`08-02-2011`16:43:37\r\n#FullDataName Animator: Sound Modifier`Frequency: Speed Effect`Wind Sound Modifiers\r\n\r\n#MiscYellow0\r\ndefine_output v_mod4 = pow(vAir/air_speed_ref, 0.5);\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 FREQUENCY\r\nADD_SOUND_MODIFIER FREQUENCY\r\nSOUNDMOD_OPERATION mult\r\n\r\nSOUNDMOD_INPUT_NAME v_mod4\r\nSOUNDMOD_INPUT_MIN 0.0\r\nSOUNDMOD_INPUT_LOW 1.0\r\nSOUNDMOD_INPUT_HIGH 2.0\r\nSOUNDMOD_INPUT_MAX 3.0\r\nSOUNDMOD_OUTPUT_MIN 0.0\r\nSOUNDMOD_OUTPUT_LOW 0.5\r\nSOUNDMOD_OUTPUT_HIGH 1.0\r\nSOUNDMOD_OUTPUT_MAX 1.5\r\n\r\nWRT_v_mod4\r\nANI_v_mod4\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Modifier; { Wind Sound Modifiers } Frequency: Speed Effect\r\n#Library : Animator: Sound Modifier\r\n#DataSet : Frequency: Speed Effect\r\n#Category: Wind Sound Modifiers\r\n#FileID  : SndMod123\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:37\r\n#VehCode Sound Modifier\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Modifier\\SndMod123.par\r\n\r\n#BlueLink1 Animator: Sound Modifier`Frequency: Speed Effect` Wind Sound Modifiers` , Playback modification 2\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Sample; { Wind Noise } Wind Noise\r\n#Library : Animator: Sound Sample\r\n#DataSet : Wind Noise\r\n#Category: Wind Noise\r\n#FileID  : SndSmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Sample\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Sample\\SndSmp105.par\r\n\r\n#BlueLink2 Animator: Sound Sample`Wind Noise` Wind Noise` , Sample 3\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Sound Set; { General Vehicle Sounds } Gasoline Engine Vehicle\r\n#Library : Animator: Sound Set\r\n#DataSet : Gasoline Engine Vehicle\r\n#Category: General Vehicle Sounds\r\n#FileID  : SndSet105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:36\r\n#VehCode Sound Set\r\n\r\nENTRY_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\nThe sound samples are based on a 4 cylinder engine. The frequency can be scaled for a different number of cylinders by setting the ncyls parameter here.\r\nEXIT_NOTEFILE Animator\\Sound\\Set\\SndSet105_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Sound\\Set\\SndSet105.par\r\n\r\n#BlueLink6 Animator: Sound Set`Gasoline Engine Vehicle` General Vehicle Sounds` , Sound Set\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\nWRITE_ADD_REFERENCE_FRAME_BRAKES\r\nENTER_PARSFILE Animator\\STL\\AniSTL261.par`08-02-2011`16:43:44\r\n#FullDataName Animator: Shape File Link`SUV: Brake Lights (D-Class)`CS SUV\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\vehicles\\suv\\brakes_on.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 1\r\nSET_SCALE_Y 1.005\r\nSET_SCALE_Z 1\r\nSET_OFFSET_X -0.01\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0.3\r\nX_REF_LENGTH 2850\r\nY_REF_LENGTH 1900\r\nZ_REF_LENGTH 1700\r\n*SPECULAR 1\r\nSMOOTH_MAX_ANGLE 1\r\n*IMAGE_FIT_MODE 1\r\n#RingCtrl0 1\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\nSET_SPECULAR 1 1 1\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { CS SUV } SUV: Brake Lights (D-Class)\r\n#Library : Animator: Shape File Link\r\n#DataSet : SUV: Brake Lights (D-Class)\r\n#Category: CS SUV\r\n#FileID  : AniSTL261\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:44\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL261.par\r\n\r\n#BlueLink3 Animator: Shape File Link`SUV: Brake Lights (D-Class)` CS SUV` , Brake lights\r\n\r\nWRITE_REFERENCE_FRAME_SIZE\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera101.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Vehicle Pictures`Shape Preview\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Shape Preview Yaw for Shape Preview\r\n#BlueLink0 Animator: Reference Frame`Yaw for Shape Preview` Shape Preview` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Shape Preview Yaw for Shape Preview\r\nSET_LOOKPOINT_X 1\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 0.5\r\nSET_AZIMUTH 230\r\nSET_ELEVATION 6\r\nSET_DISTANCE 12\r\n*SET_LOOKPOINT_X 1\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 0.5\r\n*SET_AZIMUTH 230\r\n*SET_ELEVATION 6\r\n*SET_DISTANCE 12\r\nGHOST_COUNT 0\r\nFOG_SCALE 0\r\nSET_FIELD_OF_VIEW 21.1\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Shape Preview } Vehicle Pictures\r\n#Library : Animator: Camera Setup\r\n#DataSet : Vehicle Pictures\r\n#Category: Shape Preview\r\n#FileID  : Camera101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nENTRY_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\nPause the animation at the very start and center the vehicle in the animator  to take a picture for the Animator: Vehicle screen.\r\nEXIT_NOTEFILE Animator\\Cameras\\Camera101_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera101.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Vehicle Pictures` Shape Preview` , Animator camera\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL114.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Blurred Tire`Tires\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\tires\\blurred_tire\\blurred_tire.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\n*SPECULAR 0.3\r\nSMOOTH_MAX_ANGLE 1\r\n#RingCtrl0 0\r\n#CheckBox0 0\r\nset_lighting on\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox2 1\r\nmtl_ns_old on\r\n#CheckBox3 0\r\n#CheckBox4 1\r\n\r\nshow_front on\r\nshow_back on\r\nSET_SPECULAR 0.3 0.3 0.3\r\nvsv_enable_shadows_recursive\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Tires } Blurred Tire\r\n#Library : Animator: Shape File Link\r\n#DataSet : Blurred Tire\r\n#Category: Tires\r\n#FileID  : AniSTL114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL114.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Blurred Tire` Tires` , Tire for traffic vehicle\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Vehicles and Sensor Targets; { D-Class Vehicles } D-Class, SUV\r\n#Library : Animator: Vehicles and Sensor Targets\r\n#DataSet : D-Class, SUV\r\n#Category: D-Class Vehicles\r\n#FileID  : AniVeh116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:35\r\n#VehCode Vehicle Shape\r\n\r\nENTRY_NOTEFILE Animator\\Vehicles\\AniVeh116_note.txt\r\nThe Animator: Vehicles and Other Moving Objects screen is used to define animation shapes to be used with the animator.\r\nEXIT_NOTEFILE Animator\\Vehicles\\AniVeh116_note.txt\r\n\r\nEXIT_PARSFILE Animator\\Vehicles\\AniVeh116.par\r\n\r\n#BlueLink2 Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles` , Vehicle animator data\r\n\r\nENTER_PARSFILE Powertrain\\4wd\\4WD106.par`08-02-2011`16:42:55\r\n#FullDataName Powertrain: 4-Wheel Drive`150 kW, 6-spd., 4.1 Ratio`\r\n\r\nOPT_PT 3\r\n\r\nOPT_ENGINE_PITCH_REACTION(1) 0\r\nOPT_ENGINE_PITCH_REACTION(2) 0\r\n\r\n#RingCtrl0 1\r\nR_MDRIVE 1\r\n#RingCtrl1 1\r\nOPT_ENGINE_INTERNAL 1\r\n#RingCtrl2 1\r\n#RingCtrl3 2\r\n#RingCtrl4 1\r\nOPT_DIFF_INTERNAL(3) 1\r\n#RingCtrl5 1\r\n#RingCtrl6 1\r\nDRIVELINE_FREQ 9\r\nDRIVELINE_ZETA 0.9\r\n\r\n#CheckBox0 0\r\n#CheckBox1 0\r\n\r\nOPT_PWR_CPL_INTERNAL 1\r\nOPT_TRANS_INTERNAL 1\r\nOPT_DIFF_INTERNAL(1) 1\r\nOPT_DIFF_INTERNAL(2) 1\r\n\r\nENTER_PARSFILE Powertrain\\Engine\\Engine110.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Engine`150 kW  Engine`CS Engine Torque Curves\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\nAV_ENG_IDLE 750\r\nIENG 0.2\r\n\r\n#CheckBox0 0\r\nOPT_THROTTLE_DELAY 0\r\n\r\nENTER_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par`08-02-2011`16:42:52\r\n#FullDataName Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption`\r\n#RingCtrl0 CARPET\r\n#RadioCtrl0 0\r\n\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Fuel rate (kg/sec)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 26, 19 ! columns x rows\r\nFUEL_RATE_CARPET\r\n0, 0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1\r\n600, 8e-05, 0.0002, 0.0003, 0.00032, 0.00034, 0.00037, 0.00039, 0.00041, 0.00043, 0.00046, 0.00048, 0.0005, 0.00052, 0.00055, 0.00057, 0.00059, 0.00061, 0.00064, 0.00066, 0.00068, 0.0007, 0.00073, 0.00075, 0.00077, 0.00079, 0.00082\r\n800, 0.00013, 0.0002, 0.0004, 0.00059, 0.00071, 0.0008, 0.00083, 0.00085, 0.00086, 0.00087, 0.00088, 0.00089, 0.0009, 0.00091, 0.00092, 0.00093, 0.00094, 0.00096, 0.00097, 0.00098, 0.00099, 0.001, 0.00101, 0.00102, 0.00103, 0.00104\r\n1000, 0.00016, 0.0002, 0.00039, 0.00062, 0.00079, 0.00091, 0.00099, 0.00104, 0.00107, 0.00108, 0.00109, 0.00111, 0.00112, 0.00113, 0.00114, 0.00115, 0.00117, 0.00118, 0.00119, 0.0012, 0.00121, 0.00123, 0.00124, 0.00125, 0.00126, 0.00127\r\n1200, 0.00016, 0.00021, 0.00039, 0.00064, 0.00088, 0.00104, 0.00114, 0.00123, 0.00128, 0.00131, 0.00133, 0.00134, 0.00135, 0.00137, 0.00138, 0.0014, 0.00141, 0.00142, 0.00144, 0.00145, 0.00147, 0.00148, 0.00149, 0.00151, 0.00152, 0.00154\r\n1400, 0.00017, 0.00023, 0.00039, 0.00066, 0.00091, 0.00113, 0.0013, 0.0014, 0.00148, 0.00153, 0.00156, 0.00158, 0.0016, 0.00161, 0.00163, 0.00165, 0.00167, 0.00168, 0.0017, 0.00172, 0.00174, 0.00175, 0.00177, 0.00179, 0.00181, 0.00182\r\n1600, 0.0002, 0.00026, 0.0004, 0.00066, 0.00095, 0.00119, 0.00139, 0.00154, 0.00164, 0.00173, 0.00178, 0.00181, 0.00183, 0.00184, 0.00186, 0.00188, 0.0019, 0.00192, 0.00194, 0.00195, 0.00197, 0.00199, 0.00201, 0.00203, 0.00205, 0.00207\r\n1800, 0.00021, 0.00028, 0.00039, 0.00067, 0.00095, 0.00124, 0.00147, 0.00166, 0.00178, 0.00189, 0.00195, 0.002, 0.00203, 0.00206, 0.00209, 0.00212, 0.00215, 0.00218, 0.00222, 0.00225, 0.00228, 0.00231, 0.00234, 0.00237, 0.0024, 0.00243\r\n2000, 0.00023, 0.0003, 0.00038, 0.00065, 0.00096, 0.00129, 0.00156, 0.00178, 0.00195, 0.00207, 0.00215, 0.00221, 0.00227, 0.00231, 0.00234, 0.00238, 0.00241, 0.00245, 0.00249, 0.00252, 0.00256, 0.00259, 0.00263, 0.00267, 0.0027, 0.00274\r\n2200, 0.00025, 0.00033, 0.00041, 0.00065, 0.00098, 0.0013, 0.00162, 0.00189, 0.00212, 0.00226, 0.00239, 0.00246, 0.00252, 0.00257, 0.00261, 0.00264, 0.00268, 0.00272, 0.00275, 0.00279, 0.00282, 0.00286, 0.0029, 0.00293, 0.00297, 0.003\r\n2400, 0.00027, 0.00036, 0.00044, 0.00065, 0.00095, 0.00133, 0.00168, 0.00199, 0.00223, 0.0024, 0.00255, 0.00265, 0.00272, 0.00278, 0.00284, 0.0029, 0.00296, 0.00302, 0.00308, 0.00314, 0.00319, 0.00325, 0.00331, 0.00337, 0.00343, 0.00349\r\n2800, 0.00033, 0.00039, 0.00046, 0.00065, 0.00097, 0.00134, 0.00174, 0.00207, 0.00239, 0.00265, 0.0028, 0.00296, 0.00307, 0.00313, 0.0032, 0.00326, 0.00331, 0.00336, 0.00342, 0.00347, 0.00352, 0.00357, 0.00363, 0.00368, 0.00373, 0.00379\r\n3200, 0.00038, 0.00045, 0.00053, 0.00064, 0.00097, 0.00136, 0.00175, 0.00216, 0.00256, 0.00287, 0.0031, 0.00326, 0.00343, 0.00365, 0.00388, 0.0041, 0.00424, 0.00425, 0.00427, 0.00429, 0.0043, 0.00432, 0.00434, 0.00435, 0.00437, 0.00439\r\n3600, 0.00043, 0.00052, 0.00061, 0.0007, 0.00095, 0.00137, 0.00179, 0.00221, 0.00272, 0.00315, 0.00347, 0.00384, 0.00423, 0.00463, 0.00487, 0.00495, 0.00502, 0.00509, 0.00513, 0.00514, 0.00516, 0.00517, 0.00519, 0.0052, 0.00521, 0.00523\r\n4000, 0.00047, 0.00059, 0.00083, 0.00118, 0.00162, 0.0021, 0.00259, 0.00317, 0.00367, 0.00403, 0.00436, 0.00487, 0.00537, 0.00587, 0.00603, 0.00608, 0.00614, 0.0062, 0.00624, 0.00625, 0.00626, 0.00627, 0.00629, 0.0063, 0.00631, 0.00633\r\n4400, 0.00051, 0.00064, 0.00085, 0.00122, 0.00165, 0.00218, 0.0027, 0.00333, 0.00392, 0.00443, 0.00477, 0.00514, 0.00568, 0.00621, 0.00675, 0.00703, 0.00709, 0.00715, 0.00721, 0.00726, 0.00731, 0.00732, 0.00733, 0.00735, 0.00736, 0.00738\r\n4800, 0.00052, 0.00074, 0.00095, 0.00121, 0.00167, 0.00218, 0.00272, 0.00336, 0.00404, 0.00459, 0.00538, 0.0064, 0.00701, 0.00725, 0.0075, 0.00774, 0.00793, 0.00799, 0.00805, 0.00811, 0.00817, 0.00822, 0.00828, 0.00829, 0.0083, 0.00831\r\n5200, 0.00059, 0.00078, 0.00098, 0.00117, 0.00164, 0.00216, 0.00272, 0.0034, 0.0041, 0.00505, 0.00633, 0.0069, 0.00747, 0.00779, 0.00807, 0.00835, 0.00863, 0.0088, 0.00886, 0.00891, 0.00897, 0.00903, 0.00909, 0.00914, 0.0092, 0.00926\r\n5600, 0.00065, 0.00083, 0.001, 0.00119, 0.0016, 0.00212, 0.00273, 0.00356, 0.00462, 0.00551, 0.00638, 0.00704, 0.00762, 0.00803, 0.0083, 0.00857, 0.00885, 0.00912, 0.00925, 0.00931, 0.00937, 0.00943, 0.00949, 0.00955, 0.00961, 0.00967\r\n5800, 0.00076, 0.0009, 0.00103, 0.00119, 0.00162, 0.00211, 0.00271, 0.00357, 0.0046, 0.00548, 0.00642, 0.00712, 0.00772, 0.00816, 0.00841, 0.00867, 0.00892, 0.00918, 0.0093, 0.00935, 0.0094, 0.00945, 0.00951, 0.00956, 0.00961, 0.00966\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Fuel Consumption Rate; 150 kW Fuel Consumption\r\n#Library : Powertrain: Fuel Consumption Rate\r\n#DataSet : 150 kW Fuel Consumption\r\n#Category:\r\n#FileID  : FuelRate102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:52\r\n#VehCode Fuel rate\r\n\r\nEXIT_PARSFILE Powertrain\\Fuel_Rate\\FuelRate102.par\r\n\r\n#BlueLink0 Powertrain: Fuel Consumption Rate`150 kW Fuel Consumption` ` , Fuel rate\r\n\r\n*3D_XLabel Throttle (-)\r\n*3D_YLabel Engine speed (rpm)\r\n*3D_ZLabel Engine torque (N-m)\r\n\r\n#DiagramTwo0\r\n*3D_DATA 10, 22 ! columns x rows\r\nMENGINE_CARPET\r\n0, 0, 0.1, 0.15, 0.2, 0.35, 0.5, 0.7, 0.85, 0.95, 1\r\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n517, 24.75, 76.11, 101.37, 103.43, 104.6, 105.18, 105.38, 105.43, 105.46, 105.43\r\n633, 29.7, 92.87, 139.66, 149.15, 150.67, 151.28, 151.5, 151.52, 151.52, 151.52\r\n750, 0, 87.39, 148.02, 161.35, 164.95, 166.25, 166.73, 166.77, 166.77, 166.75\r\n1107, -9.9, 70.62, 173.59, 198.66, 208.61, 212.02, 213.29, 213.4, 213.37, 213.29\r\n1463, -14.85, 47.12, 167.31, 207.9, 221.15, 227.15, 230.09, 230.77, 231.22, 235.62\r\n1820, -16.83, 25.74, 148.5, 211.6, 233.68, 242.29, 246.89, 248.14, 249.06, 255.42\r\n2177, -20.17, 9.9, 117.65, 203.67, 237.6, 257.4, 260.37, 263.34, 266.31, 272.88\r\n2533, -25.32, -6.41, 81.3, 182.08, 239.58, 267, 274.23, 279.24, 282.15, 287.1\r\n2890, -30.14, -15.16, 56.41, 153.5, 233.12, 269.9, 285.22, 289.08, 295.02, 299.97\r\n3247, -34.39, -22.06, 37.66, 122.49, 223.45, 267.3, 287.1, 295.02, 300.96, 306.9\r\n3603, -38.57, -28.1, 23.48, 96.53, 201.04, 259.38, 288.09, 297, 303.93, 309.87\r\n3960, -42.77, -33.71, 11.8, 76.42, 174.35, 248.62, 285.12, 296.01, 302.94, 306.9\r\n4317, -47.21, -39.38, 0.28, 57.45, 150.24, 237.3, 280.17, 290.07, 297, 302.88\r\n4673, -51.83, -45.01, -9.97, 41.19, 125.06, 220.31, 272.25, 282.15, 292.05, 297\r\n5030, -56.74, -50.57, -19.08, 26.99, 102.65, 198.96, 262.35, 272.25, 282.15, 287.1\r\n5387, -61.67, -56.24, -27.53, 14.45, 83.52, 176.58, 246.84, 256.41, 269.64, 272.49\r\n5743, -67.19, -62.17, -35.72, 2.82, 66.2, 153.28, 221.41, 236.52, 243.61, 246.41\r\n6100, -73.21, -68.41, -43.88, -8.16, 50.38, 130.66, 193.86, 207.92, 214.52, 217.05\r\n6500, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19, -80.19\r\n6700, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18, -81.18\r\nENDTABLE\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Engine; { CS Engine Torque Curves } 150 kW  Engine\r\n#Library : Powertrain: Engine\r\n#DataSet : 150 kW  Engine\r\n#Category: CS Engine Torque Curves\r\n#FileID  : Engine110\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode 2D Table\r\n\r\nEXIT_PARSFILE Powertrain\\Engine\\Engine110.par\r\n\r\n#BlueLink0 Powertrain: Engine`150 kW  Engine` CS Engine Torque Curves` , Engine\r\n\r\nENTER_PARSFILE Powertrain\\TConv\\TC103.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Torque Converter`Torque Converter for 150 kW Engine`CS Torque Converters\r\n#RingCtrl0 SPLINE_FLAT\r\n#RingCtrl1 SPLINE_FLAT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\nITC_INPUT_SHAFT 0.015\r\nITC_OUTPUT_SHAFT 0.015\r\n\r\n#DiagramOne0\r\nINV_CAP_TC_TABLE SPLINE_FLAT\r\n0, 0.00704273\r\n0.1, 0.00704273\r\n0.2, 0.00704273\r\n0.3, 0.00704269\r\n0.4, 0.00704199\r\n0.5, 0.00703585\r\n0.6, 0.00700014\r\n0.7, 0.00684379\r\n0.8, 0.00628652\r\n0.9, 0.00458708\r\n0.95, 0.00282599\r\n0.99, 0.000673411\r\n1.01, -0.000673411\r\n1.05, -0.00282599\r\n1.1, -0.00458708\r\n1.2, -0.00628652\r\n1.3, -0.00684379\r\n1.4, -0.00700014\r\n1.5, -0.00703585\r\n1.6, -0.00704199\r\n1.7, -0.00704269\r\n1.8, -0.00704273\r\n1.9, -0.00704273\r\n2, -0.00704273\r\nENDTABLE\r\n#DiagramOne1\r\nRM_TC_TABLE SPLINE_FLAT\r\n0, 1.864\r\n0.102, 1.78\r\n0.202, 1.701\r\n0.306, 1.608\r\n0.353, 1.56\r\n0.4, 1.519\r\n0.452, 1.464\r\n0.502, 1.412\r\n0.551, 1.356\r\n0.6, 1.309\r\n0.65, 1.259\r\n0.7, 1.203\r\n0.75, 1.151\r\n0.801, 1.098\r\n0.82, 1.074\r\n0.84, 1.048\r\n0.849, 1.041\r\n0.861, 1.027\r\n0.87, 1.014\r\n0.881, 0.996\r\n0.89, 0.996\r\n0.9, 0.993\r\n0.91, 0.998\r\n0.921, 0.986\r\n0.928, 0.993\r\n0.94, 0.996\r\n0.951, 0.981\r\n0.99, 1\r\n1, 1\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Torque Converter; { CS Torque Converters } Torque Converter for 150 kW Engine\r\n#Library : Powertrain: Torque Converter\r\n#DataSet : Torque Converter for 150 kW Engine\r\n#Category: CS Torque Converters\r\n#FileID  : TC103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Torque converter\r\n\r\nEXIT_PARSFILE Powertrain\\TConv\\TC103.par\r\n\r\n#BlueLink1 Powertrain: Torque Converter`Torque Converter for 150 kW Engine` CS Torque Converters` , Torque Conv.\r\n\r\nENTER_PARSFILE Powertrain\\TransExt\\Trans101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission`\r\n#RingCtrl0 6\r\nNGEARS 6\r\n#RingCtrl1 1\r\nOPT_SHIFT_INTERNAL 1\r\n#RingCtrl2 1\r\nOPT_TR_GEAR_INTERNAL 1\r\n#CheckBox0 0\r\nR_GEAR_TR_REVERSE -3.168\r\nR_GEAR_TR(1) 3.538\r\nR_GEAR_TR(2) 2.06\r\nR_GEAR_TR(3) 1.404\r\nR_GEAR_TR(4) 1.00\r\nR_GEAR_TR(5) 0.713\r\nR_GEAR_TR(6) 0.582\r\nITR_REVERSE 0.034\r\nITR_NEUTRAL 0.034\r\nITR(1) 0.037\r\nITR(2) 0.034\r\nITR(3) 0.042\r\nITR(4) 0.04\r\nITR(5) 0.04\r\nITR(6) 0.04\r\nR_EFF_TR_F_REVERSE 0.9\r\nR_EFF_TR_F(1) 0.92\r\nR_EFF_TR_F(2) 0.92\r\nR_EFF_TR_F(3) 0.95\r\nR_EFF_TR_F(4) 0.95\r\nR_EFF_TR_F(5) 0.98\r\nR_EFF_TR_F(6) 0.99\r\nR_EFF_TR_R_REVERSE 0.9\r\nR_EFF_TR_R(1) 0.92\r\nR_EFF_TR_R(2) 0.92\r\nR_EFF_TR_R(3) 0.95\r\nR_EFF_TR_R(4) 0.95\r\nR_EFF_TR_R(5) 0.98\r\nR_EFF_TR_R(6) 0.99\r\nT_SHIFT 0.25\r\n\r\n\r\nigear 1\r\nENTER_PARSFILE Powertrain\\Shift\\Shift101.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 1-2 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 874\r\n0.2, 874\r\n0.8, 1653\r\n1, 1653\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 699\r\n0.4, 699\r\n0.8, 1240\r\n1, 1240\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 1-2 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 1-2 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift101.par\r\n\r\n#BlueLink0 Powertrain: Shift Schedule`6-speed, 1-2 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 2\r\nENTER_PARSFILE Powertrain\\Shift\\Shift102.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 2-3 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1282\r\n0.2, 1282\r\n0.8, 2840\r\n1, 2840\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1026\r\n0.4, 1026\r\n0.8, 2130\r\n1, 2130\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 2-3 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 2-3 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift102.par\r\n\r\n#BlueLink1 Powertrain: Shift Schedule`6-speed, 2-3 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 3\r\nENTER_PARSFILE Powertrain\\Shift\\Shift103.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 3-4 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 1800\r\n0.2, 1800\r\n0.8, 4167\r\n1, 4167\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 1440\r\n0.4, 1440\r\n0.8, 3125\r\n1, 3125\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 3-4 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 3-4 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift103.par\r\n\r\n#BlueLink2 Powertrain: Shift Schedule`6-speed, 3-4 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 4\r\nENTER_PARSFILE Powertrain\\Shift\\Shift104.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 4-5 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 2525\r\n0.2, 2525\r\n0.8, 5850\r\n1, 5850\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2020\r\n0.4, 2020\r\n0.8, 4388\r\n1, 4388\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 4-5 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 4-5 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift104.par\r\n\r\n#BlueLink3 Powertrain: Shift Schedule`6-speed, 4-5 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 5\r\nENTER_PARSFILE Powertrain\\Shift\\Shift105.par`08-02-2011`16:42:51\r\n#FullDataName Powertrain: Shift Schedule`6-speed, 5-6 Shift`6-speed\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n#DiagramOne0\r\nUPSHIFT_TRANS_table\r\n0, 3093\r\n0.2, 3093\r\n0.8, 8205\r\n1, 8205\r\nENDTABLE\r\n#DiagramOne1\r\nDOWNSHIFT_TRANS_table\r\n0, 2474\r\n0.4, 2474\r\n0.8, 6154\r\n1, 6154\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Shift Schedule; { 6-speed } 6-speed, 5-6 Shift\r\n#Library : Powertrain: Shift Schedule\r\n#DataSet : 6-speed, 5-6 Shift\r\n#Category: 6-speed\r\n#FileID  : Shift105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:51\r\n#VehCode Shift schedule\r\n\r\nEXIT_PARSFILE Powertrain\\Shift\\Shift105.par\r\n\r\n#BlueLink4 Powertrain: Shift Schedule`6-speed, 5-6 Shift` 6-speed` , Shift schedule\r\n\r\n\r\nigear 6\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transmission (18 Gears or CVT); 6-Speed Transmission\r\n#Library : Powertrain: Transmission (18 Gears or CVT)\r\n#DataSet : 6-Speed Transmission\r\n#Category:\r\n#FileID  : Trans101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transmission\r\n\r\nEXIT_PARSFILE Powertrain\\TransExt\\Trans101.par\r\n\r\n#BlueLink10 Powertrain: Transmission (18 Gears or CVT)`6-Speed Transmission` ` , Transmission (Extended)\r\n\r\n\r\nIDIFF 3\r\nENTER_PARSFILE Powertrain\\Centerdiff\\XC101.par`08-02-2011`16:42:53\r\n#FullDataName Powertrain: Transfer Case`Full Time Viscous 50/50`\r\n#CheckBox0 0\r\nLOCKED_XC_OPT 0\r\n\r\n#RingCtrl0 SPLINE\r\nOPT_LOCKED_DIFF 0\r\n#DiagramOne0\r\nM_DIFF_VISC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_XC_TABLE SPLINE\r\n-1200, 402.88\r\n-1080, 382.21\r\n-960, 360.35\r\n-840, 337.07\r\n-720, 312.07\r\n-600, 284.88\r\n-540, 270.26\r\n-480, 254.8\r\n-420, 238.35\r\n-360, 220.67\r\n-300, 201.44\r\n-240, 180.17\r\n-180, 156.03\r\n-120, 127.4\r\n-60, 90.09\r\n0, 0\r\n60, -90.09\r\n120, -127.4\r\n180, -156.03\r\n240, -180.17\r\n300, -201.44\r\n360, -220.67\r\n420, -238.35\r\n480, -254.8\r\n540, -270.26\r\n600, -284.88\r\n720, -312.07\r\n840, -337.07\r\n960, -360.35\r\n1080, -382.21\r\n1200, -402.88\r\nENDTABLE\r\nR_GEAR_XC 1.00\r\nR_EFF_F_XC 0.99\r\nR_EFF_R_XC 0.99\r\nR_REAR_XC 0.5\r\nLOCKED_XC_DAMP 0.8\r\nLOCKED_XC_K 80\r\n\r\nR_GEAR_DIFF 1.00\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nR_REAR_BIAS 0.5\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Transfer Case; Full Time Viscous 50/50\r\n#Library : Powertrain: Transfer Case\r\n#DataSet : Full Time Viscous 50/50\r\n#Category:\r\n#FileID  : XC101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:53\r\n#VehCode Transfer case\r\n\r\nEXIT_PARSFILE Powertrain\\Centerdiff\\XC101.par\r\n\r\n#BlueLink3 Powertrain: Transfer Case`Full Time Viscous 50/50` ` , Transfer case\r\n\r\n\r\nIDIFF 1\r\nENTER_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Front Differential`Open - Gear Ratio 4.1`CS Front Differentials\r\n#CheckBox0 0\r\nLOCKED_FD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_FD_CONSTANT 0\r\nR_GEAR_FD 4.1\r\nR_EFF_F_FD 0.99\r\nR_EFF_R_FD 0.99\r\nLOCKED_FD_DAMP 0.8\r\nLOCKED_FD_K 80\r\nIDS_F 0.013\r\nIHS_LF 0.009\r\nIHS_RF 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Front Differential; { CS Front Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Front Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Front Differentials\r\n#FileID  : F_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Front differential\r\n\r\nEXIT_PARSFILE Powertrain\\Frontdiff\\F_Diff103.par\r\n\r\n#BlueLink4 Powertrain: Front Differential`Open - Gear Ratio 4.1` CS Front Differentials` , Differential front\r\n\r\n\r\nIDIFF 2\r\nENTER_PARSFILE Powertrain\\Reardiff\\R_Diff103.par`08-02-2011`16:42:54\r\n#FullDataName Powertrain: Rear Differential`Open - Gear Ratio 4.1`CS Rear Differentials\r\n#CheckBox0 0\r\nLOCKED_RD_OPT 0\r\n\r\n#RingCtrl0 CONSTANT\r\nOPT_LOCKED_DIFF 0\r\nM_DIFF_VISC_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\nM_DIFF_RD_CONSTANT 0\r\nR_GEAR_RD 4.1\r\nR_EFF_F_RD 0.99\r\nR_EFF_R_RD 0.99\r\nLOCKED_RD_DAMP 0.8\r\nLOCKED_RD_K 80\r\nIDS_R 0.013\r\nIHS_LR 0.009\r\nIHS_RR 0.009\r\n*SCALAR 0\r\n\r\nR_GEAR_DIFF 4.1\r\nR_EFF_F_DIFF 0.99\r\nR_EFF_R_DIFF 0.99\r\nLOCKED_DIFF_DAMP 0.8\r\nLOCKED_DIFF_K 80\r\nIDS 0.013\r\nIHS_L 0.009\r\nIHS_R 0.009\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: Rear Differential; { CS Rear Differentials } Open - Gear Ratio 4.1\r\n#Library : Powertrain: Rear Differential\r\n#DataSet : Open - Gear Ratio 4.1\r\n#Category: CS Rear Differentials\r\n#FileID  : R_Diff103\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:54\r\n#VehCode Rear differential\r\n\r\nEXIT_PARSFILE Powertrain\\Reardiff\\R_Diff103.par\r\n\r\n#BlueLink5 Powertrain: Rear Differential`Open - Gear Ratio 4.1` CS Rear Differentials` , Differential rear\r\n\r\n\r\nLOG_ENTRY Used Dataset: Powertrain: 4-Wheel Drive; 150 kW, 6-spd., 4.1 Ratio\r\n#Library : Powertrain: 4-Wheel Drive\r\n#DataSet : 150 kW, 6-spd., 4.1 Ratio\r\n#Category:\r\n#FileID  : 4WD106\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:55\r\n#VehCode 4WD\r\n\r\nENTRY_NOTEFILE Powertrain\\4wd\\4WD106_note.txt\r\nGeneric 150 kW powertrain with an automatic transmission. The torque converter data has been tuned to work with the 150 kW engine to give reasonable performance.\r\nEXIT_NOTEFILE Powertrain\\4wd\\4WD106_note.txt\r\n\r\nEXIT_PARSFILE Powertrain\\4wd\\4WD106.par\r\n\r\n#BlueLink5 Powertrain: 4-Wheel Drive`150 kW, 6-spd., 4.1 Ratio` ` , All-wheel drive\r\n\r\nENTER_PARSFILE Brakes\\4W_System\\Brk4W113.par`08-02-2011`16:43:34\r\n#FullDataName Brakes: Four-Wheel System`D-Class, SUV w/o ABS`CS D-Class\r\nTC_L1 0.06\r\nTC_R1 0.06\r\nTC_L2 0.06\r\nTC_R2 0.06\r\nTL_L1 0\r\nTL_R1 0\r\nTL_L2 0\r\nTL_R2 0\r\n\r\n#RingCtrl0 0\r\n#RingCtrl1 0\r\n\r\niaxle 1\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`300 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 300\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 300\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 300 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 300 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq101.par\r\n\r\n#BlueLink0 Brakes: Torque`300 N-m/MPa` ` , Left front\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp101.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity Gain`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 1\r\n\r\nPBK_DL_COEFFICIENT 1\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity Gain\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity Gain\r\n#Category:\r\n#FileID  : BrkProp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp101.par\r\n\r\n#BlueLink4 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Left front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 0\r\n\r\niside 2\r\n#BlueLink1 Brakes: Torque`300 N-m/MPa` ` , Right front\r\n\r\n#BlueLink5 Brakes: Proportioning / Limiting Valve`Unity Gain` ` , Right front\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\niaxle 2\r\niside 1\r\nENTER_PARSFILE Brakes\\Torque\\BrkTrq104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Torque`150 N-m/MPa`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 150\r\n\r\n\r\nMY_BRAKE_COEFFICIENT 150\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Torque; 150 N-m/MPa\r\n#Library : Brakes: Torque\r\n#DataSet : 150 N-m/MPa\r\n#Category:\r\n#FileID  : BrkTrq104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Brake torque\r\n\r\nEXIT_PARSFILE Brakes\\Torque\\BrkTrq104.par\r\n\r\n#BlueLink2 Brakes: Torque`150 N-m/MPa` ` , Left rear\r\n\r\nENTER_PARSFILE Brakes\\Proportioning\\BrkProp104.par`08-02-2011`16:43:33\r\n#FullDataName Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%`\r\n#RingCtrl0 LINEAR\r\n#RadioCtrl0 0\r\n\r\n\r\n#DiagramOne0\r\nPBK_DL_TABLE LINEAR\r\n0, 0\r\n2, 2\r\n3, 2.3\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Proportioning / Limiting Valve; Unity until 2.0MPa then 30%\r\n#Library : Brakes: Proportioning / Limiting Valve\r\n#DataSet : Unity until 2.0MPa then 30%\r\n#Category:\r\n#FileID  : BrkProp104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:33\r\n#VehCode Prop. / limit. valve\r\n\r\nENTRY_NOTEFILE Brakes\\Proportioning\\BrkProp104_note.txt\r\nBrake systems without ABS control typically have a propotioning valve that reduces pressure gains on the rear wheel when a moderate pressure is reached, to avoid locking the rear wheels with high braking and associated load transfer.\r\n\r\nThey are also used on some trucks with large ranges in load.\r\nEXIT_NOTEFILE Brakes\\Proportioning\\BrkProp104_note.txt\r\n\r\nEXIT_PARSFILE Brakes\\Proportioning\\BrkProp104.par\r\n\r\n#BlueLink6 Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%` ` , Left rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nOPT_ABS_CTRL 0\r\n\r\niside 2\r\n#BlueLink3 Brakes: Torque`150 N-m/MPa` ` , Right rear\r\n\r\n#BlueLink7 Brakes: Proportioning / Limiting Valve`Unity until 2.0MPa then 30%` ` , Right rear\r\n\r\nTC_BK 0.06\r\nTLAG_BK 0\r\n\r\nLOG_ENTRY Used Dataset: Brakes: Four-Wheel System; { CS D-Class } D-Class, SUV w/o ABS\r\n#Library : Brakes: Four-Wheel System\r\n#DataSet : D-Class, SUV w/o ABS\r\n#Category: CS D-Class\r\n#FileID  : Brk4W113\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:34\r\n#VehCode 4-wheel system\r\n\r\nEXIT_PARSFILE Brakes\\4W_System\\Brk4W113.par\r\n\r\n#BlueLink6 Brakes: Four-Wheel System`D-Class, SUV w/o ABS` CS D-Class` , Brake system\r\n\r\nENTER_PARSFILE Steering\\System2\\StrSys2111.par`08-02-2011`16:42:43\r\n#FullDataName Steering`D-Class, SUV: Power, Recirc. Ball`CS D-Class\r\n*I_COL 0.02\r\n*I_GEAR_IN 0.00015\r\n*D_COL 0.01\r\n*HYS_COL 0.1\r\n*BETA_COL 0.5\r\n*L1_LKPO 77.0\r\n*L2_LKPO 0\r\n*R1_LKPO 77.0\r\n*R2_LKPO 0\r\n*L1_AKPI 12.5\r\n*L2_AKPI 0\r\n*R1_AKPI 12.5\r\n*R2_AKPI 0\r\n*L1_ACAST 9.5\r\n*L2_ACAST 0\r\n*R1_ACAST 9.5\r\n*R2_ACAST 0\r\n*L1_XKPO 5.0\r\n*L2_XKPO 0\r\n*R1_XKPO 5.0\r\n*R2_XKPO 0\r\n*RSW_F 20\r\n*D_GR_F 4\r\n*D_RACK_F 30\r\n*K_TBAR 2\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 2\r\n#RingCtrl2 0\r\n#RingCtrl3 0\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 1\r\n\r\nI_COL 0.02\r\nI_GEAR_IN 0.00015\r\nD_COL 0.01\r\nHYS_COL 0.1\r\nBETA_COL 0.5\r\nOPT_STEER_DEF 1\r\n\r\nOPT_M_SW_CALC 1\r\niside 1\r\niaxle 1\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niside 2\r\nL_KPO 77.0\r\nA_KPI 12.5\r\nA_CASTER 9.5\r\nX_KPO 5.0\r\n\r\niaxle 2\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niside 1\r\nL_KPO 0\r\nA_KPI 0\r\nA_CASTER 0\r\nX_KPO 0\r\n\r\niaxle 2\r\nOPT_RACK 0\r\nGEAR_ROT_COEFFICIENT 0.02\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp101.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`No Steer Compliance`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\nSTEER_COMP_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; No Steer Compliance\r\n#Library : Steering System: Compliance\r\n#DataSet : No Steer Compliance\r\n#Category:\r\n#FileID  : StrCmp101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp101.par\r\n\r\n#BlueLink14 Steering System: Compliance`No Steer Compliance` ` , Rear compliance\r\n\r\n\r\niaxle 1\r\n\r\nOPT_POWER 1\r\nOPT_RACK 0\r\nGEAR_ROT_COEFFICIENT 1/20\r\nD_GEAR 4\r\nTBAR 2\r\nENTER_PARSFILE Steering\\Kinematics2\\StrKinAx102.par`08-02-2011`16:42:41\r\n#FullDataName Steering System: Kinematics for 2 Wheels (Recirc. Ball)`D-Class, SUV Recirc. Ball Kinematics`D-Class\r\n#RingCtrl0 SPLINE\r\n#RingCtrl1 SPLINE\r\n\r\niside 2\r\n#DiagramOne0\r\nSTEER_KIN_TABLE SPLINE\r\n-30.6, -35.73321668\r\n-30.294, -35.33074603\r\n-29.988, -34.92888705\r\n-29.682, -34.52765493\r\n-29.376, -34.12706463\r\n-29.07, -33.72713088\r\n-28.764, -33.32786819\r\n-28.458, -32.92929081\r\n-28.152, -32.5314128\r\n-27.846, -32.13424794\r\n-27.54, -31.73780979\r\n-27.234, -31.34211166\r\n-26.928, -30.9471666\r\n-26.622, -30.55298743\r\n-26.316, -30.1595867\r\n-26.01, -29.76697671\r\n-25.704, -29.37516952\r\n-25.398, -28.98417692\r\n-25.092, -28.59401042\r\n-24.786, -28.2046813\r\n-24.48, -27.81620057\r\n-24.174, -27.42857896\r\n-23.868, -27.04182696\r\n-23.562, -26.65595478\r\n-23.256, -26.27097236\r\n-22.95, -25.88688939\r\n-22.644, -25.50371529\r\n-22.338, -25.1214592\r\n-22.032, -24.74013\r\n-21.726, -24.35973631\r\n-21.42, -23.98028649\r\n-21.114, -23.60178863\r\n-20.808, -23.22425053\r\n-20.502, -22.84767977\r\n-20.196, -22.47208363\r\n-19.89, -22.09746916\r\n-19.584, -21.72384311\r\n-19.278, -21.35121202\r\n-18.972, -20.97958212\r\n-18.666, -20.60895943\r\n-18.36, -20.23934968\r\n-18.054, -19.87075836\r\n-17.748, -19.50319072\r\n-17.442, -19.13665174\r\n-17.136, -18.77114616\r\n-16.83, -18.40667849\r\n-16.524, -18.04325296\r\n-16.218, -17.6808736\r\n-15.912, -17.31954418\r\n-15.606, -16.95926823\r\n-15.3, -16.60004905\r\n-14.994, -16.24188972\r\n-14.688, -15.88479308\r\n-14.382, -15.52876174\r\n-14.076, -15.17379809\r\n-13.77, -14.81990432\r\n-13.464, -14.46708236\r\n-13.158, -14.11533397\r\n-12.852, -13.76466066\r\n-12.546, -13.41506376\r\n-12.24, -13.06654437\r\n-11.934, -12.7191034\r\n-11.628, -12.37274156\r\n-11.322, -12.02745937\r\n-11.016, -11.68325713\r\n-10.71, -11.34013497\r\n-10.404, -10.99809284\r\n-10.098, -10.65713047\r\n-9.792, -10.31724746\r\n-9.486, -9.97844318\r\n-9.18, -9.640716858\r\n-8.874, -9.304067538\r\n-8.568, -8.968494097\r\n-8.262, -8.633995246\r\n-7.956, -8.300569533\r\n-7.65, -7.968215349\r\n-7.344, -7.636930926\r\n-7.038, -7.306714344\r\n-6.732, -6.977563533\r\n-6.426, -6.649476276\r\n-6.12, -6.322450212\r\n-5.814, -5.996482841\r\n-5.508, -5.671571523\r\n-5.202, -5.347713486\r\n-4.896, -5.024905823\r\n-4.59, -4.703145503\r\n-4.284, -4.382429366\r\n-3.978, -4.062754131\r\n-3.672, -3.744116397\r\n-3.366, -3.426512647\r\n-3.06, -3.109939249\r\n-2.754, -2.794392461\r\n-2.448, -2.479868432\r\n-2.142, -2.166363208\r\n-1.836, -1.853872728\r\n-1.53, -1.542392837\r\n-1.224, -1.231919277\r\n-0.918, -0.9224477\r\n-0.612, -0.613973663\r\n-0.306, -0.306492635\r\n2.20934e-14, 0\r\n0.306, 0.305508946\r\n0.612, 0.610038985\r\n0.918, 0.913594981\r\n1.224, 1.216181874\r\n1.53, 1.517804678\r\n1.836, 1.818468479\r\n2.142, 2.118178435\r\n2.448, 2.416939769\r\n2.754, 2.714757771\r\n3.06, 3.011637794\r\n3.366, 3.307585251\r\n3.672, 3.602605617\r\n3.978, 3.89670442\r\n4.284, 4.189887245\r\n4.59, 4.482159732\r\n4.896, 4.773527567\r\n5.202, 5.06399649\r\n5.508, 5.353572286\r\n5.814, 5.642260785\r\n6.12, 5.930067861\r\n6.426, 6.216999431\r\n6.732, 6.503061451\r\n7.038, 6.788259915\r\n7.344, 7.072600856\r\n7.65, 7.356090338\r\n7.956, 7.638734464\r\n8.262, 7.920539366\r\n8.568, 8.201511205\r\n8.874, 8.481656175\r\n9.18, 8.760980495\r\n9.486, 9.039490412\r\n9.792, 9.317192196\r\n10.098, 9.594092142\r\n10.404, 9.870196567\r\n10.71, 10.14551181\r\n11.016, 10.42004423\r\n11.322, 10.69380019\r\n11.628, 10.96678611\r\n11.934, 11.23900837\r\n12.24, 11.51047342\r\n12.546, 11.78118769\r\n12.852, 12.05115763\r\n13.158, 12.32038971\r\n13.464, 12.5888904\r\n13.77, 12.8566662\r\n14.076, 13.12372358\r\n14.382, 13.39006906\r\n14.688, 13.65570916\r\n14.994, 13.92065038\r\n15.3, 14.18489925\r\n15.606, 14.44846229\r\n15.912, 14.71134605\r\n16.218, 14.97355705\r\n16.524, 15.23510184\r\n16.83, 15.49598695\r\n17.136, 15.75621894\r\n17.442, 16.01580433\r\n17.748, 16.27474968\r\n18.054, 16.53306152\r\n18.36, 16.7907464\r\n18.666, 17.04781086\r\n18.972, 17.30426143\r\n19.278, 17.56010466\r\n19.584, 17.81534707\r\n19.89, 18.06999519\r\n20.196, 18.32405554\r\n20.502, 18.57753465\r\n20.808, 18.83043902\r\n21.114, 19.08277518\r\n21.42, 19.33454961\r\n21.726, 19.58576883\r\n22.032, 19.83643931\r\n22.338, 20.08656755\r\n22.644, 20.33616003\r\n22.95, 20.5852232\r\n23.256, 20.83376354\r\n23.562, 21.08178749\r\n23.868, 21.32930151\r\n24.174, 21.57631204\r\n24.48, 21.82282549\r\n24.786, 22.06884829\r\n25.092, 22.31438686\r\n25.398, 22.55944759\r\n25.704, 22.80403687\r\n26.01, 23.0481611\r\n26.316, 23.29182664\r\n26.622, 23.53503986\r\n26.928, 23.7778071\r\n27.234, 24.02013472\r\n27.54, 24.26202905\r\n27.846, 24.50349641\r\n28.152, 24.74454311\r\n28.458, 24.98517546\r\n28.764, 25.22539975\r\n29.07, 25.46522226\r\n29.376, 25.70464927\r\n29.682, 25.94368703\r\n29.988, 26.18234179\r\n30.294, 26.4206198\r\n30.6, 26.65852728\r\nENDTABLE\r\n\r\niside 1\r\n#DiagramOne1\r\nSTEER_KIN_TABLE SPLINE\r\n-30.6, -26.65852728\r\n-30.294, -26.4206198\r\n-29.988, -26.18234179\r\n-29.682, -25.94368703\r\n-29.376, -25.70464927\r\n-29.07, -25.46522226\r\n-28.764, -25.22539975\r\n-28.458, -24.98517546\r\n-28.152, -24.74454311\r\n-27.846, -24.50349641\r\n-27.54, -24.26202905\r\n-27.234, -24.02013472\r\n-26.928, -23.7778071\r\n-26.622, -23.53503986\r\n-26.316, -23.29182664\r\n-26.01, -23.0481611\r\n-25.704, -22.80403687\r\n-25.398, -22.55944759\r\n-25.092, -22.31438686\r\n-24.786, -22.06884829\r\n-24.48, -21.82282549\r\n-24.174, -21.57631204\r\n-23.868, -21.32930151\r\n-23.562, -21.08178749\r\n-23.256, -20.83376354\r\n-22.95, -20.5852232\r\n-22.644, -20.33616003\r\n-22.338, -20.08656755\r\n-22.032, -19.83643931\r\n-21.726, -19.58576883\r\n-21.42, -19.33454961\r\n-21.114, -19.08277518\r\n-20.808, -18.83043902\r\n-20.502, -18.57753465\r\n-20.196, -18.32405554\r\n-19.89, -18.06999519\r\n-19.584, -17.81534707\r\n-19.278, -17.56010466\r\n-18.972, -17.30426143\r\n-18.666, -17.04781086\r\n-18.36, -16.7907464\r\n-18.054, -16.53306152\r\n-17.748, -16.27474968\r\n-17.442, -16.01580433\r\n-17.136, -15.75621894\r\n-16.83, -15.49598695\r\n-16.524, -15.23510184\r\n-16.218, -14.97355705\r\n-15.912, -14.71134605\r\n-15.606, -14.44846229\r\n-15.3, -14.18489925\r\n-14.994, -13.92065038\r\n-14.688, -13.65570916\r\n-14.382, -13.39006906\r\n-14.076, -13.12372358\r\n-13.77, -12.8566662\r\n-13.464, -12.5888904\r\n-13.158, -12.32038971\r\n-12.852, -12.05115763\r\n-12.546, -11.78118769\r\n-12.24, -11.51047342\r\n-11.934, -11.23900837\r\n-11.628, -10.96678611\r\n-11.322, -10.69380019\r\n-11.016, -10.42004423\r\n-10.71, -10.14551181\r\n-10.404, -9.870196567\r\n-10.098, -9.594092142\r\n-9.792, -9.317192196\r\n-9.486, -9.039490412\r\n-9.18, -8.760980495\r\n-8.874, -8.481656175\r\n-8.568, -8.201511205\r\n-8.262, -7.920539366\r\n-7.956, -7.638734464\r\n-7.65, -7.356090338\r\n-7.344, -7.072600856\r\n-7.038, -6.788259915\r\n-6.732, -6.503061451\r\n-6.426, -6.216999431\r\n-6.12, -5.930067861\r\n-5.814, -5.642260785\r\n-5.508, -5.353572286\r\n-5.202, -5.06399649\r\n-4.896, -4.773527567\r\n-4.59, -4.482159732\r\n-4.284, -4.189887245\r\n-3.978, -3.89670442\r\n-3.672, -3.602605617\r\n-3.366, -3.307585251\r\n-3.06, -3.011637794\r\n-2.754, -2.714757771\r\n-2.448, -2.416939769\r\n-2.142, -2.118178435\r\n-1.836, -1.818468479\r\n-1.53, -1.517804678\r\n-1.224, -1.216181874\r\n-0.918, -0.913594981\r\n-0.612, -0.610038985\r\n-0.306, -0.305508946\r\n2.20934e-14, 0\r\n0.306, 0.306492635\r\n0.612, 0.613973663\r\n0.918, 0.9224477\r\n1.224, 1.231919277\r\n1.53, 1.542392837\r\n1.836, 1.853872728\r\n2.142, 2.166363208\r\n2.448, 2.479868432\r\n2.754, 2.794392461\r\n3.06, 3.109939249\r\n3.366, 3.426512647\r\n3.672, 3.744116397\r\n3.978, 4.062754131\r\n4.284, 4.382429366\r\n4.59, 4.703145503\r\n4.896, 5.024905823\r\n5.202, 5.347713486\r\n5.508, 5.671571523\r\n5.814, 5.996482841\r\n6.12, 6.322450212\r\n6.426, 6.649476276\r\n6.732, 6.977563533\r\n7.038, 7.306714344\r\n7.344, 7.636930926\r\n7.65, 7.968215349\r\n7.956, 8.300569533\r\n8.262, 8.633995246\r\n8.568, 8.968494097\r\n8.874, 9.304067538\r\n9.18, 9.640716858\r\n9.486, 9.97844318\r\n9.792, 10.31724746\r\n10.098, 10.65713047\r\n10.404, 10.99809284\r\n10.71, 11.34013497\r\n11.016, 11.68325713\r\n11.322, 12.02745937\r\n11.628, 12.37274156\r\n11.934, 12.7191034\r\n12.24, 13.06654437\r\n12.546, 13.41506376\r\n12.852, 13.76466066\r\n13.158, 14.11533397\r\n13.464, 14.46708236\r\n13.77, 14.81990432\r\n14.076, 15.17379809\r\n14.382, 15.52876174\r\n14.688, 15.88479308\r\n14.994, 16.24188972\r\n15.3, 16.60004905\r\n15.606, 16.95926823\r\n15.912, 17.31954418\r\n16.218, 17.6808736\r\n16.524, 18.04325296\r\n16.83, 18.40667849\r\n17.136, 18.77114616\r\n17.442, 19.13665174\r\n17.748, 19.50319072\r\n18.054, 19.87075836\r\n18.36, 20.23934968\r\n18.666, 20.60895943\r\n18.972, 20.97958212\r\n19.278, 21.35121202\r\n19.584, 21.72384311\r\n19.89, 22.09746916\r\n20.196, 22.47208363\r\n20.502, 22.84767977\r\n20.808, 23.22425053\r\n21.114, 23.60178863\r\n21.42, 23.98028649\r\n21.726, 24.35973631\r\n22.032, 24.74013\r\n22.338, 25.1214592\r\n22.644, 25.50371529\r\n22.95, 25.88688939\r\n23.256, 26.27097236\r\n23.562, 26.65595478\r\n23.868, 27.04182696\r\n24.174, 27.42857896\r\n24.48, 27.81620057\r\n24.786, 28.2046813\r\n25.092, 28.59401042\r\n25.398, 28.98417692\r\n25.704, 29.37516952\r\n26.01, 29.76697671\r\n26.316, 30.1595867\r\n26.622, 30.55298743\r\n26.928, 30.9471666\r\n27.234, 31.34211166\r\n27.54, 31.73780979\r\n27.846, 32.13424794\r\n28.152, 32.5314128\r\n28.458, 32.92929081\r\n28.764, 33.32786819\r\n29.07, 33.72713088\r\n29.376, 34.12706463\r\n29.682, 34.52765493\r\n29.988, 34.92888705\r\n30.294, 35.33074603\r\n30.6, 35.73321668\r\nENDTABLE\r\n#RadioCtrl0 1\r\n#RadioCtrl1 1\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Kinematics for 2 Wheels (Recirc. Ball); { D-Class } D-Class, SUV Recirc. Ball Kinematics\r\n#Library : Steering System: Kinematics for 2 Wheels (Recirc. Ball)\r\n#DataSet : D-Class, SUV Recirc. Ball Kinematics\r\n#Category: D-Class\r\n#FileID  : StrKinAx102\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:41\r\n#VehCode Steer kinematics\r\n\r\nENTRY_NOTEFILE Steering\\Kinematics2\\StrKinAx102_note.txt\r\nD-Class SUV Recirculating Ball Kinematics data screen with 11 rows per wheel and Function Type: Spline interpolation and extrapolation.\r\nEXIT_NOTEFILE Steering\\Kinematics2\\StrKinAx102_note.txt\r\n\r\nEXIT_PARSFILE Steering\\Kinematics2\\StrKinAx102.par\r\n\r\n#BlueLink8 Steering System: Kinematics for 2 Wheels (Recirc. Ball)`D-Class, SUV Recirc. Ball Kinematics` D-Class` , Pitman arm to front wheels\r\n\r\nENTER_PARSFILE Steering\\Str_TqBoost\\TqBoost101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Power Assist Torque`200 N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\nTC_BOOST 2\r\n*SCALAR 200\r\n\r\nM_BOOST_G_COEFFICIENT 200\r\n\r\nLOG_ENTRY Used Dataset: Steering: Power Assist Torque; 200 N-m\r\n#Library : Steering: Power Assist Torque\r\n#DataSet : 200 N-m\r\n#Category:\r\n#FileID  : TqBoost101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Power assist torque\r\n\r\nEXIT_PARSFILE Steering\\Str_TqBoost\\TqBoost101.par\r\n\r\n#BlueLink17 Steering: Power Assist Torque`200 N-m` ` , Front boost torque\r\n\r\nENTER_PARSFILE Steering\\Compliance\\StrCmp105.par`08-02-2011`16:42:43\r\n#FullDataName Steering System: Compliance`0.002 deg/N-m`\r\n#RingCtrl0 COEFFICIENT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.002\r\n\r\nSTEER_COMP_COEFFICIENT 0.002\r\n\r\nLOG_ENTRY Used Dataset: Steering System: Compliance; 0.002 deg/N-m\r\n#Library : Steering System: Compliance\r\n#DataSet : 0.002 deg/N-m\r\n#Category:\r\n#FileID  : StrCmp105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode Steering compliance\r\n\r\nEXIT_PARSFILE Steering\\Compliance\\StrCmp105.par\r\n\r\n#BlueLink13 Steering System: Compliance`0.002 deg/N-m` ` , Front compliance\r\n\r\nENTER_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par`08-02-2011`16:42:40\r\n#FullDataName Steering: Parking Torque for 2 Wheels`Zero`\r\n#RingCtrl0 CONSTANT\r\n#RingCtrl1 CONSTANT\r\n#RadioCtrl0 0\r\n#RadioCtrl1 0\r\n\r\n*A_MZ_BETA_R 0.1\r\n*A_MZ_BETA_L 0.1\r\n*SCALAR 0\r\n*SCALAR2 0\r\n\r\n\r\niside 2\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\niside 1\r\nA_MZ_BETA 0.1\r\nMZ_PARKING_STEER_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Steering: Parking Torque for 2 Wheels; Zero\r\n#Library : Steering: Parking Torque for 2 Wheels\r\n#DataSet : Zero\r\n#Category:\r\n#FileID  : TqPkAx101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:40\r\n#VehCode Parking Torque\r\n\r\nEXIT_PARSFILE Steering\\Str_Park_Trq2\\TqPkAx101.par\r\n\r\n#BlueLink15 Steering: Parking Torque for 2 Wheels`Zero` ` , Front wheels\r\n\r\n\r\nLOG_ENTRY Used Dataset: Steering; { CS D-Class } D-Class, SUV: Power, Recirc. Ball\r\n#Library : Steering\r\n#DataSet : D-Class, SUV: Power, Recirc. Ball\r\n#Category: CS D-Class\r\n#FileID  : StrSys2111\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:43\r\n#VehCode 4-wheel steer\r\n\r\nENTRY_NOTEFILE Steering\\System2\\StrSys2111_note.txt\r\nSteering for a vehicle with\r\nWheelbase = 2600 mm\r\nFront Track =  1565 mm\r\nEXIT_NOTEFILE Steering\\System2\\StrSys2111_note.txt\r\n\r\nEXIT_PARSFILE Steering\\System2\\StrSys2111.par\r\n\r\n#BlueLink7 Steering`D-Class, SUV: Power, Recirc. Ball` CS D-Class` , Steering system\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles`\r\n\r\nLOG_ENTRY Used Dataset: Vehicle: Assembly; { CS D-Class } D-Class, SUV LEO-defined\r\n#Library : Vehicle: Assembly\r\n#DataSet : D-Class, SUV LEO-defined\r\n#Category: CS D-Class\r\n#FileID  : Vehicle165\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-23-2019 18:41:30\r\n#VehCode Ind_SA\r\n\r\nEXIT_PARSFILE Vehicles\\Assembly\\Vehicle165.par\r\n\r\n#BlueLink2 Vehicle: Assembly`D-Class, SUV LEO-defined` CS D-Class` , Vehicle configuration\r\n\r\nENTER_PARSFILE Procedures\\Proc162.par`08-24-2019`03:04:50\r\n#FullDataName Procedures`SinSteeer_CorneringStiffness_Hat`BOOK_MPC_Procedures\r\n#CheckBox0 1\r\nOPT_INIT_CONFIG 1\r\n#CheckBox1 1\r\nOPT_INIT_ROAD 1\r\n#CheckBox2 1\r\nOPT_INIT_SPEED 1\r\n#CheckBox3 1\r\n\r\n#RingCtrl0 1\r\n#RingCtrl1 0\r\nOPT_SSTOP 0\r\n#RingCtrl2 0\r\n*SPEED 65\r\nTSTOP 40\r\nTSTART 0\r\nSSTART 0\r\nSGUI_SSTOP 2235\r\n\r\nTSTART_WRITE = TSTART;\r\n#RingCtrl2 0\r\nSSTOP 1\r\nOPT_DIRECTION 1\r\nOpt_SC 3\r\nSPEED_STATION_CONSTANT 65\r\nENTER_PARSFILE Control\\Steer\\Steer114.par`08-02-2011`16:43:30\r\n#FullDataName Control: Steering (Open Loop)`Sine Wave for Test`Sine Wave\r\nOPT_DRIVER_MODEL 0\r\nOPT_STEER 0\r\n#RingCtrl0 SPLINE_FLAT\r\n\r\n#DiagramOne0\r\nSTEER_SW_TABLE SPLINE_FLAT\r\n0, 0\r\n0.1, 14.0791\r\n0.2, 27.8116\r\n0.3, 40.8592\r\n0.4, 52.9008\r\n0.5, 63.6397\r\n0.6, 72.8116\r\n0.7, 80.1907\r\n0.8, 85.5952\r\n0.9, 88.892\r\n1, 90\r\n1.1, 88.8919\r\n1.2, 85.595\r\n1.3, 80.1904\r\n1.4, 72.8113\r\n1.5, 63.6393\r\n1.6, 52.9002\r\n1.7, 40.8586\r\n1.8, 27.811\r\n1.9, 14.0785\r\n2, -0.000661\r\n2.1, -14.0798\r\n2.2, -27.8122\r\n2.3, -40.8598\r\n2.4, -52.9013\r\n2.5, -63.6402\r\n2.6, -72.812\r\n2.7, -80.191\r\n2.8, -85.5954\r\n2.9, -88.8921\r\n3, -90\r\n3.1, -88.8918\r\n3.2, -85.5948\r\n3.3, -80.1901\r\n3.4, -72.8109\r\n3.5, -63.6388\r\n3.6, -52.8997\r\n3.7, -40.8581\r\n3.8, -27.8103\r\n3.9, -14.0778\r\n4, 0.001322\r\n4.1, 14.0804\r\n4.2, 27.8129\r\n4.3, 40.8604\r\n4.4, 52.9018\r\n4.5, 63.6407\r\n4.6, 72.8124\r\n4.7, 80.1913\r\n4.8, 85.5956\r\n4.9, 88.8922\r\n5, 90\r\n5.1, 88.8917\r\n5.2, 85.5946\r\n5.3, 80.1898\r\n5.4, 72.8105\r\n5.5, 63.6383\r\n5.6, 52.8992\r\n5.7, 40.8575\r\n5.8, 27.8097\r\n5.9, 14.0772\r\n6, -0.001984\r\n6.1, -14.0811\r\n6.2, -27.8135\r\n6.3, -40.861\r\n6.4, -52.9024\r\n6.5, -63.6411\r\n6.6, -72.8128\r\n6.7, -80.1916\r\n6.8, -85.5958\r\n6.9, -88.8923\r\n7, -90\r\n7.1, -88.8916\r\n7.2, -85.5944\r\n7.3, -80.1895\r\n7.4, -72.8101\r\n7.5, -63.6379\r\n7.6, -52.8986\r\n7.7, -40.8569\r\n7.8, -27.8091\r\n7.9, -14.0765\r\n8, 0.002645\r\n8.1, 14.0817\r\n8.2, 27.8141\r\n8.3, 40.8616\r\n8.4, 52.9029\r\n8.5, 63.6416\r\n8.6, 72.8132\r\n8.7, 80.1919\r\n8.8, 85.596\r\n8.9, 88.8924\r\n9, 90\r\n9.1, 88.8915\r\n9.2, 85.5941\r\n9.3, 80.1892\r\n9.4, 72.8097\r\n9.5, 63.6374\r\n9.6, 52.8981\r\n9.7, 40.8563\r\n9.8, 27.8084\r\n9.9, 14.0759\r\n10, -0.003306\r\n10.1, -14.0824\r\n10.2, -27.8147\r\n10.3, -40.8622\r\n10.4, -52.9035\r\n10.5, -63.6421\r\n10.6, -72.8136\r\n10.7, -80.1922\r\n10.8, -85.5962\r\n10.9, -88.8925\r\n11, -90\r\n11.1, -88.8914\r\n11.2, -85.5939\r\n11.3, -80.1889\r\n11.4, -72.8093\r\n11.5, -63.6369\r\n11.6, -52.8976\r\n11.7, -40.8557\r\n11.8, -27.8078\r\n11.9, -14.0752\r\n12, 0.003967\r\n12.1, 14.0831\r\n12.2, 27.8154\r\n12.3, 40.8628\r\n12.4, 52.904\r\n12.5, 63.6425\r\n12.6, 72.814\r\n12.7, 80.1925\r\n12.8, 85.5964\r\n12.9, 88.8926\r\n13, 90\r\n13.1, 88.8913\r\n13.2, 85.5937\r\n13.3, 80.1886\r\n13.4, 72.8089\r\n13.5, 63.6365\r\n13.6, 52.897\r\n13.7, 40.8551\r\n13.8, 27.8072\r\n13.9, 14.0746\r\n14, -0.004628\r\n14.1, -14.0837\r\n14.2, -27.816\r\n14.3, -40.8634\r\n14.4, -52.9045\r\n14.5, -63.643\r\n14.6, -72.8144\r\n14.7, -80.1928\r\n14.8, -85.5966\r\n14.9, -88.8927\r\n15, -90\r\n15.1, -88.8912\r\n15.2, -85.5935\r\n15.3, -80.1883\r\n15.4, -72.8085\r\n15.5, -63.636\r\n15.6, -52.8965\r\n15.7, -40.8545\r\n15.8, -27.8066\r\n15.9, -14.0739\r\n16, 0.005289\r\n16.1, 14.0844\r\n16.2, 27.8166\r\n16.3, 40.8639\r\n16.4, 52.9051\r\n16.5, 63.6435\r\n16.6, 72.8148\r\n16.7, 80.1931\r\n16.8, 85.5968\r\n16.9, 88.8928\r\n17, 90\r\n17.1, 88.8911\r\n17.2, 85.5933\r\n17.3, 80.188\r\n17.4, 72.8081\r\n17.5, 63.6355\r\n17.6, 52.896\r\n17.7, 40.8539\r\n17.8, 27.8059\r\n17.9, 14.0733\r\n18, -0.005951\r\n18.1, -14.085\r\n18.2, -27.8173\r\n18.3, -40.8645\r\n18.4, -52.9056\r\n18.5, -63.6439\r\n18.6, -72.8151\r\n18.7, -80.1934\r\n18.8, -85.597\r\n18.9, -88.8929\r\n19, -90\r\n19.1, -88.891\r\n19.2, -85.5931\r\n19.3, -80.1877\r\n19.4, -72.8078\r\n19.5, -63.6351\r\n19.6, -52.8954\r\n19.7, -40.8533\r\n19.8, -27.8053\r\n19.9, -14.0726\r\n20, 0.006612\r\n20.1, 14.0857\r\n20.2, 27.8179\r\n20.3, 40.8651\r\n20.4, 52.9061\r\n20.5, 63.6444\r\n20.6, 72.8155\r\n20.7, 80.1937\r\n20.8, 85.5972\r\n20.9, 88.893\r\n21, 90\r\n21.1, 88.8909\r\n21.2, 85.5929\r\n21.3, 80.1874\r\n21.4, 72.8074\r\n21.5, 63.6346\r\n21.6, 52.8949\r\n21.7, 40.8528\r\n21.8, 27.8047\r\n21.9, 14.072\r\n22, -0.007273\r\n22.1, -14.0863\r\n22.2, -27.8185\r\n22.3, -40.8657\r\n22.4, -52.9067\r\n22.5, -63.6449\r\n22.6, -72.8159\r\n22.7, -80.194\r\n22.8, -85.5974\r\n22.9, -88.8931\r\n23, -90\r\n23.1, -88.8908\r\n23.2, -85.5927\r\n23.3, -80.1871\r\n23.4, -72.807\r\n23.5, -63.6341\r\n23.6, -52.8944\r\n23.7, -40.8522\r\n23.8, -27.804\r\n23.9, -14.0713\r\n24, 0.007934\r\n24.1, 14.087\r\n24.2, 27.8191\r\n24.3, 40.8663\r\n24.4, 52.9072\r\n24.5, 63.6453\r\n24.6, 72.8163\r\n24.7, 80.1943\r\n24.8, 85.5976\r\n24.9, 88.8932\r\n25, 90\r\n25.1, 88.8907\r\n25.2, 85.5925\r\n25.3, 80.1868\r\n25.4, 72.8066\r\n25.5, 63.6336\r\n25.6, 52.8938\r\n25.7, 40.8516\r\n25.8, 27.8034\r\n25.9, 14.0706\r\n26, -0.008595\r\n26.1, -14.0876\r\n26.2, -27.8198\r\n26.3, -40.8669\r\n26.4, -52.9077\r\n26.5, -63.6458\r\n26.6, -72.8167\r\n26.7, -80.1946\r\n26.8, -85.5978\r\n26.9, -88.8933\r\n27, -90\r\n27.1, -88.8905\r\n27.2, -85.5923\r\n27.3, -80.1865\r\n27.4, -72.8062\r\n27.5, -63.6332\r\n27.6, -52.8933\r\n27.7, -40.851\r\n27.8, -27.8028\r\n27.9, -14.07\r\n28, 0.009256\r\n28.1, 14.0883\r\n28.2, 27.8204\r\n28.3, 40.8675\r\n28.4, 52.9083\r\n28.5, 63.6463\r\n28.6, 72.8171\r\n28.7, 80.1949\r\n28.8, 85.598\r\n28.9, 88.8934\r\n29, 90\r\n29.1, 88.8904\r\n29.2, 85.5921\r\n29.3, 80.1862\r\n29.4, 72.8058\r\n29.5, 63.6327\r\n29.6, 52.8928\r\n29.7, 40.8504\r\n29.8, 27.8022\r\n29.9, 14.0693\r\n30, -0.009918\r\n30.1, -14.0889\r\n30.2, -27.821\r\n30.3, -40.8681\r\n30.4, -52.9088\r\n30.5, -63.6467\r\n30.6, -72.8175\r\n30.7, -80.1952\r\n30.8, -85.5982\r\n30.9, -88.8935\r\n31, -90\r\n31.1, -88.8903\r\n31.2, -85.5919\r\n31.3, -80.1859\r\n31.4, -72.8054\r\n31.5, -63.6322\r\n31.6, -52.8922\r\n31.7, -40.8498\r\n31.8, -27.8015\r\n31.9, -14.0687\r\n32, 0.010579\r\n32.1, 14.0896\r\n32.2, 27.8217\r\n32.3, 40.8687\r\n32.4, 52.9093\r\n32.5, 63.6472\r\n32.6, 72.8179\r\n32.7, 80.1955\r\n32.8, 85.5984\r\n32.9, 88.8937\r\n33, 90\r\n33.1, 88.8902\r\n33.2, 85.5917\r\n33.3, 80.1856\r\n33.4, 72.805\r\n33.5, 63.6318\r\n33.6, 52.8917\r\n33.7, 40.8492\r\n33.8, 27.8009\r\n33.9, 14.068\r\n34, -0.01124\r\n34.1, -14.0902\r\n34.2, -27.8223\r\n34.3, -40.8692\r\n34.4, -52.9099\r\n34.5, -63.6477\r\n34.6, -72.8183\r\n34.7, -80.1958\r\n34.8, -85.5986\r\n34.9, -88.8938\r\n35, -90\r\n35.1, -88.8901\r\n35.2, -85.5915\r\n35.3, -80.1853\r\n35.4, -72.8047\r\n35.5, -63.6313\r\n35.6, -52.8912\r\n35.7, -40.8486\r\n35.8, -27.8003\r\n35.9, -14.0674\r\n36, 0.011901\r\n36.1, 14.0909\r\n36.2, 27.8229\r\n36.3, 40.8698\r\n36.4, 52.9104\r\n36.5, 63.6481\r\n36.6, 72.8186\r\n36.7, 80.1961\r\n36.8, 85.5988\r\n36.9, 88.8939\r\n37, 90\r\n37.1, 88.89\r\n37.2, 85.5913\r\n37.3, 80.185\r\n37.4, 72.8043\r\n37.5, 63.6308\r\n37.6, 52.8906\r\n37.7, 40.848\r\n37.8, 27.7996\r\n37.9, 14.0667\r\n38, -0.012562\r\n38.1, -14.0915\r\n38.2, -27.8235\r\n38.3, -40.8704\r\n38.4, -52.9109\r\n38.5, -63.6486\r\n38.6, -72.819\r\n38.7, -80.1964\r\n38.8, -85.599\r\n38.9, -88.894\r\n39, -90\r\n39.1, -88.8899\r\n39.2, -85.5911\r\n39.3, -80.1847\r\n39.4, -72.8039\r\n39.5, -63.6304\r\n39.6, -52.8901\r\n39.7, -40.8475\r\n39.8, -27.799\r\n39.9, -14.0661\r\n40, 0.013224\r\n40.1, 14.0922\r\n40.2, 27.8242\r\n40.3, 40.871\r\n40.4, 52.9115\r\n40.5, 63.6491\r\n40.6, 72.8194\r\n40.7, 80.1967\r\n40.8, 85.5993\r\n40.9, 88.8941\r\n41, 90\r\n41.1, 88.8898\r\n41.2, 85.5909\r\n41.3, 80.1844\r\n41.4, 72.8035\r\n41.5, 63.6299\r\n41.6, 52.8895\r\n41.7, 40.8469\r\n41.8, 27.7984\r\n41.9, 14.0654\r\n42, -0.013885\r\n42.1, -14.0928\r\n42.2, -27.8248\r\n42.3, -40.8716\r\n42.4, -52.912\r\n42.5, -63.6495\r\n42.6, -72.8198\r\n42.7, -80.197\r\n42.8, -85.5995\r\n42.9, -88.8942\r\n43, -90\r\n43.1, -88.8897\r\n43.2, -85.5907\r\n43.3, -80.1841\r\n43.4, -72.8031\r\n43.5, -63.6294\r\n43.6, -52.889\r\n43.7, -40.8463\r\n43.8, -27.7978\r\n43.9, -14.0648\r\n44, 0.014546\r\n44.1, 14.0935\r\n44.2, 27.8254\r\n44.3, 40.8722\r\n44.4, 52.9125\r\n44.5, 63.65\r\n44.6, 72.8202\r\n44.7, 80.1973\r\n44.8, 85.5997\r\n44.9, 88.8943\r\n45, 90\r\n45.1, 88.8896\r\n45.2, 85.5905\r\n45.3, 80.1838\r\n45.4, 72.8027\r\n45.5, 63.629\r\n45.6, 52.8885\r\n45.7, 40.8457\r\n45.8, 27.7971\r\n45.9, 14.0641\r\n46, -0.015207\r\n46.1, -14.0942\r\n46.2, -27.8261\r\n46.3, -40.8728\r\n46.4, -52.9131\r\n46.5, -63.6505\r\n46.6, -72.8206\r\n46.7, -80.1976\r\n46.8, -85.5999\r\n46.9, -88.8944\r\n47, -90\r\n47.1, -88.8895\r\n47.2, -85.5903\r\n47.3, -80.1835\r\n47.4, -72.8023\r\n47.5, -63.6285\r\n47.6, -52.8879\r\n47.7, -40.8451\r\n47.8, -27.7965\r\n47.9, -14.0635\r\n48, 0.015868\r\n48.1, 14.0948\r\n48.2, 27.8267\r\n48.3, 40.8734\r\n48.4, 52.9136\r\n48.5, 63.6509\r\n48.6, 72.821\r\n48.7, 80.1979\r\n48.8, 85.6001\r\n48.9, 88.8945\r\n49, 90\r\n49.1, 88.8894\r\n49.2, 85.5901\r\n49.3, 80.1832\r\n49.4, 72.8019\r\n49.5, 63.628\r\n49.6, 52.8874\r\n49.7, 40.8445\r\n49.8, 27.7959\r\n49.9, 14.0628\r\n50, -0.016529\r\n50.1, -14.0955\r\n50.2, -27.8273\r\n50.3, -40.874\r\n50.4, -52.9142\r\n50.5, -63.6514\r\n50.6, -72.8214\r\n50.7, -80.1982\r\n50.8, -85.6003\r\n50.9, -88.8946\r\n51, -90\r\n51.1, -88.8893\r\n51.2, -85.5899\r\n51.3, -80.1829\r\n51.4, -72.8015\r\n51.5, -63.6276\r\n51.6, -52.8869\r\n51.7, -40.8439\r\n51.8, -27.7952\r\n51.9, -14.0622\r\n52, 0.017191\r\n52.1, 14.0961\r\n52.2, 27.8279\r\n52.3, 40.8746\r\n52.4, 52.9147\r\n52.5, 63.6519\r\n52.6, 72.8217\r\n52.7, 80.1985\r\n52.8, 85.6005\r\n52.9, 88.8947\r\n53, 90\r\n53.1, 88.8892\r\n53.2, 85.5897\r\n53.3, 80.1826\r\n53.4, 72.8012\r\n53.5, 63.6271\r\n53.6, 52.8863\r\n53.7, 40.8433\r\n53.8, 27.7946\r\n53.9, 14.0615\r\n54, -0.017852\r\n54.1, -14.0968\r\n54.2, -27.8286\r\n54.3, -40.8751\r\n54.4, -52.9152\r\n54.5, -63.6523\r\n54.6, -72.8221\r\n54.7, -80.1988\r\n54.8, -85.6007\r\n54.9, -88.8948\r\n55, -90\r\n55.1, -88.8891\r\n55.2, -85.5894\r\n55.3, -80.1823\r\n55.4, -72.8008\r\n55.5, -63.6266\r\n55.6, -52.8858\r\n55.7, -40.8427\r\n55.8, -27.794\r\n55.9, -14.0608\r\n56, 0.018513\r\n56.1, 14.0974\r\n56.2, 27.8292\r\n56.3, 40.8757\r\n56.4, 52.9158\r\n56.5, 63.6528\r\n56.6, 72.8225\r\n56.7, 80.1991\r\n56.8, 85.6009\r\n56.9, 88.8949\r\n57, 90\r\n57.1, 88.889\r\n57.2, 85.5892\r\n57.3, 80.182\r\n57.4, 72.8004\r\n57.5, 63.6262\r\n57.6, 52.8853\r\n57.7, 40.8421\r\n57.8, 27.7934\r\n57.9, 14.0602\r\n58, -0.019174\r\n58.1, -14.0981\r\n58.2, -27.8298\r\n58.3, -40.8763\r\n58.4, -52.9163\r\n58.5, -63.6533\r\n58.6, -72.8229\r\n58.7, -80.1994\r\n58.8, -85.6011\r\n58.9, -88.895\r\n59, -90\r\n59.1, -88.8889\r\n59.2, -85.589\r\n59.3, -80.1817\r\n59.4, -72.8\r\n59.5, -63.6257\r\n59.6, -52.8847\r\n59.7, -40.8416\r\n59.8, -27.7927\r\n59.9, -14.0595\r\n60, 0.019835\r\n60.1, 14.0987\r\n60.2, 27.8305\r\n60.3, 40.8769\r\n60.4, 52.9168\r\n60.5, 63.6538\r\n60.6, 72.8233\r\n60.7, 80.1997\r\n60.8, 85.6013\r\n60.9, 88.8951\r\n61, 90\r\n61.1, 88.8888\r\n61.2, 85.5888\r\n61.3, 80.1814\r\n61.4, 72.7996\r\n61.5, 63.6252\r\n61.6, 52.8842\r\n61.7, 40.841\r\n61.8, 27.7921\r\n61.9, 14.0589\r\n62, -0.020496\r\n62.1, -14.0994\r\n62.2, -27.8311\r\n62.3, -40.8775\r\n62.4, -52.9174\r\n62.5, -63.6542\r\n62.6, -72.8237\r\n62.7, -80.2\r\n62.8, -85.6015\r\n62.9, -88.8952\r\n63, -90\r\n63.1, -88.8887\r\n63.2, -85.5886\r\n63.3, -80.1811\r\n63.4, -72.7992\r\n63.5, -63.6248\r\n63.6, -52.8837\r\n63.7, -40.8404\r\n63.8, -27.7915\r\n63.9, -14.0582\r\n64, 0.021158\r\n64.1, 14.1\r\n64.2, 27.8317\r\n64.3, 40.8781\r\n64.4, 52.9179\r\n64.5, 63.6547\r\n64.6, 72.8241\r\n64.7, 80.2003\r\n64.8, 85.6017\r\n64.9, 88.8953\r\n65, 90\r\n65.1, 88.8886\r\n65.2, 85.5884\r\n65.3, 80.1808\r\n65.4, 72.7988\r\n65.5, 63.6243\r\n65.6, 52.8831\r\n65.7, 40.8398\r\n65.8, 27.7908\r\n65.9, 14.0576\r\n66, -0.021819\r\n66.1, -14.1007\r\n66.2, -27.8323\r\n66.3, -40.8787\r\n66.4, -52.9184\r\n66.5, -63.6552\r\n66.6, -72.8245\r\n66.7, -80.2006\r\n66.8, -85.6019\r\n66.9, -88.8954\r\n67, -90\r\n67.1, -88.8885\r\n67.2, -85.5882\r\n67.3, -80.1805\r\n67.4, -72.7984\r\n67.5, -63.6238\r\n67.6, -52.8826\r\n67.7, -40.8392\r\n67.8, -27.7902\r\n67.9, -14.0569\r\n68, 0.02248\r\n68.1, 14.1013\r\n68.2, 27.833\r\n68.3, 40.8793\r\n68.4, 52.919\r\n68.5, 63.6556\r\n68.6, 72.8249\r\n68.7, 80.2009\r\n68.8, 85.6021\r\n68.9, 88.8955\r\n69, 90\r\n69.1, 88.8884\r\n69.2, 85.588\r\n69.3, 80.1802\r\n69.4, 72.798\r\n69.5, 63.6234\r\n69.6, 52.8821\r\n69.7, 40.8386\r\n69.8, 27.7896\r\n69.9, 14.0563\r\n70, -0.023141\r\n70.1, -14.102\r\n70.2, -27.8336\r\n70.3, -40.8799\r\n70.4, -52.9195\r\n70.5, -63.6561\r\n70.6, -72.8252\r\n70.7, -80.2012\r\n70.8, -85.6023\r\n70.9, -88.8956\r\n71, -90\r\n71.1, -88.8883\r\n71.2, -85.5878\r\n71.3, -80.1799\r\n71.4, -72.7977\r\n71.5, -63.6229\r\n71.6, -52.8815\r\n71.7, -40.838\r\n71.8, -27.789\r\n71.9, -14.0556\r\n72, 0.023802\r\n72.1, 14.1026\r\n72.2, 27.8342\r\n72.3, 40.8804\r\n72.4, 52.92\r\n72.5, 63.6566\r\n72.6, 72.8256\r\n72.7, 80.2015\r\n72.8, 85.6025\r\n72.9, 88.8957\r\n73, 90\r\n73.1, 88.8882\r\n73.2, 85.5876\r\n73.3, 80.1796\r\n73.4, 72.7973\r\n73.5, 63.6224\r\n73.6, 52.881\r\n73.7, 40.8374\r\n73.8, 27.7883\r\n73.9, 14.055\r\n74, -0.024464\r\n74.1, -14.1033\r\n74.2, -27.8349\r\n74.3, -40.881\r\n74.4, -52.9206\r\n74.5, -63.657\r\n74.6, -72.826\r\n74.7, -80.2018\r\n74.8, -85.6027\r\n74.9, -88.8958\r\n75, -90\r\n75.1, -88.8881\r\n75.2, -85.5874\r\n75.3, -80.1793\r\n75.4, -72.7969\r\n75.5, -63.622\r\n75.6, -52.8805\r\n75.7, -40.8368\r\n75.8, -27.7877\r\n75.9, -14.0543\r\n76, 0.025125\r\n76.1, 14.1039\r\n76.2, 27.8355\r\n76.3, 40.8816\r\n76.4, 52.9211\r\n76.5, 63.6575\r\n76.6, 72.8264\r\n76.7, 80.2021\r\n76.8, 85.6029\r\n76.9, 88.8959\r\n77, 90\r\n77.1, 88.888\r\n77.2, 85.5872\r\n77.3, 80.179\r\n77.4, 72.7965\r\n77.5, 63.6215\r\n77.6, 52.8799\r\n77.7, 40.8363\r\n77.8, 27.7871\r\n77.9, 14.0537\r\n78, -0.025786\r\n78.1, -14.1046\r\n78.2, -27.8361\r\n78.3, -40.8822\r\n78.4, -52.9216\r\n78.5, -63.658\r\n78.6, -72.8268\r\n78.7, -80.2024\r\n78.8, -85.6031\r\n78.9, -88.896\r\n79, -90\r\n79.1, -88.8879\r\n79.2, -85.587\r\n79.3, -80.1787\r\n79.4, -72.7961\r\n79.5, -63.621\r\n79.6, -52.8794\r\n79.7, -40.8357\r\n79.8, -27.7864\r\n79.9, -14.053\r\n80, 0.026447\r\n80.1, 14.1053\r\n80.2, 27.8367\r\n80.3, 40.8828\r\n80.4, 52.9222\r\n80.5, 63.6584\r\n80.6, 72.8272\r\n80.7, 80.2027\r\n80.8, 85.6033\r\n80.9, 88.8961\r\n81, 90\r\n81.1, 88.8878\r\n81.2, 85.5868\r\n81.3, 80.1784\r\n81.4, 72.7957\r\n81.5, 63.6206\r\n81.6, 52.8788\r\n81.7, 40.8351\r\n81.8, 27.7858\r\n81.9, 14.0524\r\n82, -0.027108\r\n82.1, -14.1059\r\n82.2, -27.8374\r\n82.3, -40.8834\r\n82.4, -52.9227\r\n82.5, -63.6589\r\n82.6, -72.8276\r\n82.7, -80.203\r\n82.8, -85.6035\r\n82.9, -88.8962\r\n83, -90\r\n83.1, -88.8876\r\n83.2, -85.5866\r\n83.3, -80.1781\r\n83.4, -72.7953\r\n83.5, -63.6201\r\n83.6, -52.8783\r\n83.7, -40.8345\r\n83.8, -27.7852\r\n83.9, -14.0517\r\n84, 0.027769\r\n84.1, 14.1066\r\n84.2, 27.838\r\n84.3, 40.884\r\n84.4, 52.9232\r\n84.5, 63.6594\r\n84.6, 72.828\r\n84.7, 80.2033\r\n84.8, 85.6037\r\n84.9, 88.8963\r\n85, 90\r\n85.1, 88.8875\r\n85.2, 85.5864\r\n85.3, 80.1778\r\n85.4, 72.7949\r\n85.5, 63.6196\r\n85.6, 52.8778\r\n85.7, 40.8339\r\n85.8, 27.7846\r\n85.9, 14.0511\r\n86, -0.028431\r\n86.1, -14.1072\r\n86.2, -27.8386\r\n86.3, -40.8846\r\n86.4, -52.9238\r\n86.5, -63.6598\r\n86.6, -72.8284\r\n86.7, -80.2036\r\n86.8, -85.6039\r\n86.9, -88.8964\r\n87, -90\r\n87.1, -88.8874\r\n87.2, -85.5862\r\n87.3, -80.1775\r\n87.4, -72.7945\r\n87.5, -63.6192\r\n87.6, -52.8772\r\n87.7, -40.8333\r\n87.8, -27.7839\r\n87.9, -14.0504\r\n88, 0.029092\r\n88.1, 14.1079\r\n88.2, 27.8393\r\n88.3, 40.8852\r\n88.4, 52.9243\r\n88.5, 63.6603\r\n88.6, 72.8287\r\n88.7, 80.2039\r\n88.8, 85.6042\r\n88.9, 88.8965\r\n89, 90\r\n89.1, 88.8873\r\n89.2, 85.586\r\n89.3, 80.1772\r\n89.4, 72.7942\r\n89.5, 63.6187\r\n89.6, 52.8767\r\n89.7, 40.8327\r\n89.8, 27.7833\r\n89.9, 14.0497\r\n90, -0.029753\r\n90.1, -14.1085\r\n90.2, -27.8399\r\n90.3, -40.8857\r\n90.4, -52.9248\r\n90.5, -63.6608\r\n90.6, -72.8291\r\n90.7, -80.2042\r\n90.8, -85.6044\r\n90.9, -88.8966\r\n91, -90\r\n91.1, -88.8872\r\n91.2, -85.5858\r\n91.3, -80.1769\r\n91.4, -72.7938\r\n91.5, -63.6182\r\n91.6, -52.8762\r\n91.7, -40.8321\r\n91.8, -27.7827\r\n91.9, -14.0491\r\n92, 0.030414\r\n92.1, 14.1092\r\n92.2, 27.8405\r\n92.3, 40.8863\r\n92.4, 52.9254\r\n92.5, 63.6612\r\n92.6, 72.8295\r\n92.7, 80.2045\r\n92.8, 85.6046\r\n92.9, 88.8968\r\n93, 90\r\n93.1, 88.8871\r\n93.2, 85.5856\r\n93.3, 80.1766\r\n93.4, 72.7934\r\n93.5, 63.6178\r\n93.6, 52.8756\r\n93.7, 40.8315\r\n93.8, 27.782\r\n93.9, 14.0484\r\n94, -0.031075\r\n94.1, -14.1098\r\n94.2, -27.8411\r\n94.3, -40.8869\r\n94.4, -52.9259\r\n94.5, -63.6617\r\n94.6, -72.8299\r\n94.7, -80.2048\r\n94.8, -85.6048\r\n94.9, -88.8969\r\n95, -90\r\n95.1, -88.887\r\n95.2, -85.5854\r\n95.3, -80.1763\r\n95.4, -72.793\r\n95.5, -63.6173\r\n95.6, -52.8751\r\n95.7, -40.831\r\n95.8, -27.7814\r\n95.9, -14.0478\r\n96, 0.031736\r\n96.1, 14.1105\r\n96.2, 27.8418\r\n96.3, 40.8875\r\n96.4, 52.9265\r\n96.5, 63.6622\r\n96.6, 72.8303\r\n96.7, 80.2051\r\n96.8, 85.605\r\n96.9, 88.897\r\n97, 90\r\n97.1, 88.8869\r\n97.2, 85.5852\r\n97.3, 80.176\r\n97.4, 72.7926\r\n97.5, 63.6168\r\n97.6, 52.8746\r\n97.7, 40.8304\r\n97.8, 27.7808\r\n97.9, 14.0471\r\n98, -0.032398\r\n98.1, -14.1111\r\n98.2, -27.8424\r\n98.3, -40.8881\r\n98.4, -52.927\r\n98.5, -63.6626\r\n98.6, -72.8307\r\n98.7, -80.2054\r\n98.8, -85.6052\r\n98.9, -88.8971\r\n99, -90\r\n99.1, -88.8868\r\n99.2, -85.5849\r\n99.3, -80.1757\r\n99.4, -72.7922\r\n99.5, -63.6163\r\n99.6, -52.874\r\n99.7, -40.8298\r\n99.8, -27.7802\r\n99.9, -14.0465\r\n100, 0.033059\r\n100.1, 14.1118\r\n100.2, 27.843\r\n100.3, 40.8887\r\n100.4, 52.9275\r\n100.5, 63.6631\r\n100.6, 72.8311\r\n100.7, 80.2057\r\n100.8, 85.6054\r\n100.9, 88.8972\r\n101, 90\r\n101.1, 88.8867\r\n101.2, 85.5847\r\n101.3, 80.1754\r\n101.4, 72.7918\r\n101.5, 63.6159\r\n101.6, 52.8735\r\n101.7, 40.8292\r\n101.8, 27.7795\r\n101.9, 14.0458\r\n102, -0.03372\r\n102.1, -14.1124\r\n102.2, -27.8437\r\n102.3, -40.8893\r\n102.4, -52.9281\r\n102.5, -63.6636\r\n102.6, -72.8315\r\n102.7, -80.206\r\n102.8, -85.6056\r\n102.9, -88.8973\r\n103, -90\r\n103.1, -88.8866\r\n103.2, -85.5845\r\n103.3, -80.1751\r\n103.4, -72.7914\r\n103.5, -63.6154\r\n103.6, -52.873\r\n103.7, -40.8286\r\n103.8, -27.7789\r\n103.9, -14.0452\r\n104, 0.034381\r\n104.1, 14.1131\r\n104.2, 27.8443\r\n104.3, 40.8899\r\n104.4, 52.9286\r\n104.5, 63.664\r\n104.6, 72.8318\r\n104.7, 80.2063\r\n104.8, 85.6058\r\n104.9, 88.8974\r\n105, 90\r\n105.1, 88.8865\r\n105.2, 85.5843\r\n105.3, 80.1748\r\n105.4, 72.791\r\n105.5, 63.6149\r\n105.6, 52.8724\r\n105.7, 40.828\r\n105.8, 27.7783\r\n105.9, 14.0445\r\n106, -0.035042\r\n106.1, -14.1137\r\n106.2, -27.8449\r\n106.3, -40.8905\r\n106.4, -52.9291\r\n106.5, -63.6645\r\n106.6, -72.8322\r\n106.7, -80.2066\r\n106.8, -85.606\r\n106.9, -88.8975\r\n107, -90\r\n107.1, -88.8864\r\n107.2, -85.5841\r\n107.3, -80.1745\r\n107.4, -72.7907\r\n107.5, -63.6145\r\n107.6, -52.8719\r\n107.7, -40.8274\r\n107.8, -27.7776\r\n107.9, -14.0439\r\n108, 0.035704\r\n108.1, 14.1144\r\n108.2, 27.8455\r\n108.3, 40.891\r\n108.4, 52.9297\r\n108.5, 63.665\r\n108.6, 72.8326\r\n108.7, 80.2069\r\n108.8, 85.6062\r\n108.9, 88.8976\r\n109, 90\r\n109.1, 88.8863\r\n109.2, 85.5839\r\n109.3, 80.1742\r\n109.4, 72.7903\r\n109.5, 63.614\r\n109.6, 52.8714\r\n109.7, 40.8268\r\n109.8, 27.777\r\n109.9, 14.0432\r\n110, -0.036365\r\n110.1, -14.1151\r\n110.2, -27.8462\r\n110.3, -40.8916\r\n110.4, -52.9302\r\n110.5, -63.6654\r\n110.6, -72.833\r\n110.7, -80.2072\r\n110.8, -85.6064\r\n110.9, -88.8977\r\n111, -90\r\n111.1, -88.8862\r\n111.2, -85.5837\r\n111.3, -80.1739\r\n111.4, -72.7899\r\n111.5, -63.6135\r\n111.6, -52.8708\r\n111.7, -40.8262\r\n111.8, -27.7764\r\n111.9, -14.0426\r\n112, 0.037026\r\n112.1, 14.1157\r\n112.2, 27.8468\r\n112.3, 40.8922\r\n112.4, 52.9307\r\n112.5, 63.6659\r\n112.6, 72.8334\r\n112.7, 80.2075\r\n112.8, 85.6066\r\n112.9, 88.8978\r\n113, 90\r\n113.1, 88.8861\r\n113.2, 85.5835\r\n113.3, 80.1736\r\n113.4, 72.7895\r\n113.5, 63.6131\r\n113.6, 52.8703\r\n113.7, 40.8257\r\n113.8, 27.7757\r\n113.9, 14.0419\r\n114, -0.037687\r\n114.1, -14.1164\r\n114.2, -27.8474\r\n114.3, -40.8928\r\n114.4, -52.9313\r\n114.5, -63.6664\r\n114.6, -72.8338\r\n114.7, -80.2078\r\n114.8, -85.6068\r\n114.9, -88.8979\r\n115, -90\r\n115.1, -88.886\r\n115.2, -85.5833\r\n115.3, -80.1733\r\n115.4, -72.7891\r\n115.5, -63.6126\r\n115.6, -52.8698\r\n115.7, -40.8251\r\n115.8, -27.7751\r\n115.9, -14.0413\r\n116, 0.038348\r\n116.1, 14.117\r\n116.2, 27.8481\r\n116.3, 40.8934\r\n116.4, 52.9318\r\n116.5, 63.6668\r\n116.6, 72.8342\r\n116.7, 80.2081\r\n116.8, 85.607\r\n116.9, 88.898\r\n117, 90\r\n117.1, 88.8859\r\n117.2, 85.5831\r\n117.3, 80.173\r\n117.4, 72.7887\r\n117.5, 63.6121\r\n117.6, 52.8692\r\n117.7, 40.8245\r\n117.8, 27.7745\r\n117.9, 14.0406\r\n118, -0.039009\r\n118.1, -14.1177\r\n118.2, -27.8487\r\n118.3, -40.894\r\n118.4, -52.9323\r\n118.5, -63.6673\r\n118.6, -72.8346\r\n118.7, -80.2084\r\n118.8, -85.6072\r\n118.9, -88.8981\r\n119, -90\r\n119.1, -88.8858\r\n119.2, -85.5829\r\n119.3, -80.1727\r\n119.4, -72.7883\r\n119.5, -63.6117\r\n119.6, -52.8687\r\n119.7, -40.8239\r\n119.8, -27.7739\r\n119.9, -14.04\r\nENDTABLE\r\n#RadioCtrl0 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Control: Steering (Open Loop); { Sine Wave } Sine Wave for Test\r\n#Library : Control: Steering (Open Loop)\r\n#DataSet : Sine Wave for Test\r\n#Category: Sine Wave\r\n#FileID  : Steer114\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:30\r\n#VehCode Open-loop steer control\r\n\r\nEXIT_PARSFILE Control\\Steer\\Steer114.par\r\n\r\n#BlueLink27 Control: Steering (Open Loop)`Sine Wave for Test` Sine Wave` , Steering\r\n\r\nENTER_PARSFILE Control\\Braking\\ConBrk101.par`08-02-2011`16:43:32\r\n#FullDataName Control: Braking (Open Loop)`No Open-Loop Braking Pressure`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\nOPT_VMIN -1\r\n*SCALAR 0\r\n\r\nPBK_CON_CONSTANT 0\r\n\r\nLOG_ENTRY Used Dataset: Control: Braking (Open Loop); No Open-Loop Braking Pressure\r\n#Library : Control: Braking (Open Loop)\r\n#DataSet : No Open-Loop Braking Pressure\r\n#Category:\r\n#FileID  : ConBrk101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:32\r\n#VehCode Brake control\r\n\r\nEXIT_PARSFILE Control\\Braking\\ConBrk101.par\r\n\r\n#BlueLink28 Control: Braking (Open Loop)`No Open-Loop Braking Pressure` ` , Braking\r\n\r\nENTER_PARSFILE Control\\Gear_at\\GearAT101.par`08-02-2011`16:43:31\r\n#FullDataName Control: Shifting (Closed Loop)`AT All Gears`\r\n#RingCtrl0 CONSTANT\r\n#RadioCtrl0 0\r\n\r\n*SCALAR NGEARS\r\n\r\nMODE_TRANS_CONSTANT NGEARS\r\n\r\nLOG_ENTRY Used Dataset: Control: Shifting (Closed Loop); AT All Gears\r\n#Library : Control: Shifting (Closed Loop)\r\n#DataSet : AT All Gears\r\n#Category:\r\n#FileID  : GearAT101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:31\r\n#VehCode Closed-loop shift control\r\n\r\nENTRY_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\nNGEARS is the internal symbol for the number of gears in a transmission. By setting the Mode to NGEARS, CarSim is automatically told to use all of the transmission gears.\r\nEXIT_NOTEFILE Control\\Gear_at\\GearAT101_note.txt\r\n\r\nEXIT_PARSFILE Control\\Gear_at\\GearAT101.par\r\n\r\n#BlueLink30 Control: Shifting (Closed Loop)`AT All Gears` ` , Shifting control\r\n\r\n#MiscYellow0\r\n! Improve animation of sensor beams\r\nani_global_interpolation off\r\n#ENDMYellow\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road122.par`08-02-2011`16:43:16\r\n#FullDataName Road: 3D Surface (All Properties)`1 km Square`3D Grid\r\nOPT_ROAD 1\r\niroad 1 ! obsolete March 2011\r\nidz_road 1\r\nRR_SURF 1\r\nDZ_SHADOW 0.02\r\nL_CAMERA_FRONT 0.5\r\nL_CAMERA_REAR 0.5\r\nENTER_PARSFILE Roads\\Center_XY\\RoadXY101.par`08-02-2011`16:43:06\r\n#FullDataName Road: X-Y Coordinates of Centerline`Straight`\r\nSPATH 0\r\n\r\n#CheckBox0 0\r\nOPT_ROAD_LOOP 0\r\n\r\n#RadioCtrl0 0\r\n\r\nOPT_ROAD 1\r\n\r\n#DiagramOne0\r\nYIN_TABLE\r\n0, 0, 0\r\n100, 0, 100\r\nENDTABLE\r\n\r\nLOG_ENTRY Used Dataset: Road: X-Y Coordinates of Centerline; Straight\r\n#Library : Road: X-Y Coordinates of Centerline\r\n#DataSet : Straight\r\n#Category:\r\n#FileID  : RoadXY101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:06\r\n#VehCode Horizontal (X-Y) table\r\n\r\nEXIT_PARSFILE Roads\\Center_XY\\RoadXY101.par\r\n\r\n#BlueLink0 Road: X-Y Coordinates of Centerline`Straight` ` , Centerline geometry\r\n\r\nENTER_PARSFILE Roads\\Center_Z\\RoadZ101.par`08-02-2011`16:43:13\r\n#FullDataName Road: Centerline Elevation`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_ZS_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Centerline Elevation; Flat\r\n#Library : Road: Centerline Elevation\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RoadZ101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Centerline elevation: Z vs S\r\n\r\nEXIT_PARSFILE Roads\\Center_Z\\RoadZ101.par\r\n\r\n#BlueLink1 Road: Centerline Elevation`Flat` ` , Centerline elevation\r\n\r\nENTER_PARSFILE Roads\\dZ_Map\\RdElMap101.par`08-02-2011`16:43:11\r\n#FullDataName Road: Off-Center Elevation Map, S-L Grid`Flat`\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nROAD_DZ_CONSTANT 0\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Off-Center Elevation Map, S-L Grid; Flat\r\n#Library : Road: Off-Center Elevation Map, S-L Grid\r\n#DataSet : Flat\r\n#Category:\r\n#FileID  : RdElMap101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:11\r\n#VehCode dZ via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\dZ_Map\\RdElMap101.par\r\n\r\n#BlueLink2 Road: Off-Center Elevation Map, S-L Grid`Flat` ` , Off-center elevation 1\r\n\r\nENTER_PARSFILE Roads\\Friction\\RdFric101.par`08-02-2011`16:43:12\r\n#FullDataName Road: Friction Map, S-L Grid`0.85`Constant Mu\r\nOPT_ROAD 1\r\n\r\n#RingCtrl0 CONSTANT\r\nMU_ROAD_CONSTANT 0.85\r\n#RadioCtrl0 0\r\n\r\n*SCALAR 0.85\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Friction Map, S-L Grid; { Constant Mu } 0.85\r\n#Library : Road: Friction Map, S-L Grid\r\n#DataSet : 0.85\r\n#Category: Constant Mu\r\n#FileID  : RdFric101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:12\r\n#VehCode Mu via S-L grid\r\n\r\nEXIT_PARSFILE Roads\\Friction\\RdFric101.par\r\n\r\n#BlueLink3 Road: Friction Map, S-L Grid`0.85` Constant Mu` , Friction\r\n\r\nENTER_PARSFILE Roads\\Shapes\\RdShp109.par`08-02-2011`16:43:13\r\n#FullDataName Road: Animator Surface Shapes`1 km Square Checkerboard`3D Grid\r\nNLANES 4\r\n#MiscYellow0\r\n# 0.9 0.9 0.9, Pavement, 0.15, 10, 100, -500, m, 500, m, 99, 2, -500, 500, 10, 2, 0,\r\n# 0.9 0.9 0.9, Pavement, 0.15, 10, 99, -500, m, 490, m, 98, 2, -490, 500, 10, 2, 0,\r\n# 0.9 0.9 0.9, Slate (White), 0.10, 10, 99, -490, m, 500, m, 98, 2, -490, 500, 10, 2, 0,\r\n# 0.9 0.9 0.9, Slate (White), 0.10, 10, 99, -500, m, 490, m, 98, 2, -500, 500, 10, 2, 0,\r\n#ENDMYellow\r\n\r\n#CheckBox0 0\r\nMIRROR 0\r\n\r\nCOLOR(1) 0.9 0.9 0.9\r\nMATERIAL(1) Pavement\r\nSPECULAR(1) 0.15\r\nSCALE(1) 10\r\nLTILES(1) 100\r\nLIN(1) -500\r\nLINUNITS(1) m\r\nLOUT(1) 500\r\nLOUTUNITS(1) m\r\nLDIV(1) 99\r\nLIPRINT(1) 2\r\nSSTART(1) -500\r\nSSTOP(1) 500\r\nSINT(1) 10\r\nIPRINT(1) 2\r\nDZ(1) 0\r\nCOLOR(2) 0.9 0.9 0.9\r\nMATERIAL(2) Pavement\r\nSPECULAR(2) 0.15\r\nSCALE(2) 10\r\nLTILES(2) 99\r\nLIN(2) -500\r\nLINUNITS(2) m\r\nLOUT(2) 490\r\nLOUTUNITS(2) m\r\nLDIV(2) 98\r\nLIPRINT(2) 2\r\nSSTART(2) -490\r\nSSTOP(2) 500\r\nSINT(2) 10\r\nIPRINT(2) 2\r\nDZ(2) 0\r\nCOLOR(3) 0.9 0.9 0.9\r\nMATERIAL(3) Slate (White)\r\nSPECULAR(3) 0.10\r\nSCALE(3) 10\r\nLTILES(3) 99\r\nLIN(3) -490\r\nLINUNITS(3) m\r\nLOUT(3) 500\r\nLOUTUNITS(3) m\r\nLDIV(3) 98\r\nLIPRINT(3) 2\r\nSSTART(3) -490\r\nSSTOP(3) 500\r\nSINT(3) 10\r\nIPRINT(3) 2\r\nDZ(3) 0\r\nCOLOR(4) 0.9 0.9 0.9\r\nMATERIAL(4) Slate (White)\r\nSPECULAR(4) 0.10\r\nSCALE(4) 10\r\nLTILES(4) 99\r\nLIN(4) -500\r\nLINUNITS(4) m\r\nLOUT(4) 490\r\nLOUTUNITS(4) m\r\nLDIV(4) 98\r\nLIPRINT(4) 2\r\nSSTART(4) -500\r\nSSTOP(4) 500\r\nSINT(4) 10\r\nIPRINT(4) 2\r\nDZ(4) 0\r\nMTL_FILE Roads\\materials\\road.mtl\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: Animator Surface Shapes; { 3D Grid } 1 km Square Checkerboard\r\n#Library : Road: Animator Surface Shapes\r\n#DataSet : 1 km Square Checkerboard\r\n#Category: 3D Grid\r\n#FileID  : RdShp109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:13\r\n#VehCode Road shapes\r\n\r\nEXIT_PARSFILE Roads\\Shapes\\RdShp109.par\r\n\r\n#BlueLink4 Road: Animator Surface Shapes`1 km Square Checkerboard` 3D Grid` , Road shape definitions\r\n\r\nadd_reference_frame road_stuff_1\r\nreference_frame_ghosts off\r\nENTER_PARSFILE Animator\\Groups\\Group101.par`08-02-2011`16:43:52\r\n#FullDataName Animator: Group`Partly Cloudy Sky`Skies\r\nENTER_PARSFILE Animator\\Frames\\Frame104.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Front Point w/o Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Front Point w/o Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camF\r\nSET_Y_NAME Y_camF\r\nSET_Z_NAME Z_camF\r\n\r\nWRT_X_camF\r\nANI_X_camF\r\nWRT_Y_camF\r\nANI_Y_camF\r\nWRT_Z_camF\r\nANI_Z_camF\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Front Point w/o Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Front Point w/o Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame104\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame104.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Front Point w/o Yaw` Road Tracking` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL115.par`08-02-2011`16:43:47\r\n#FullDataName Animator: Shape File Link`Partly Cloudy Sky`Skies\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\Slightly_Cloudy_Sky\\sky_road_course.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR 1 1 1\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 5\r\nSET_OFFSET_X 0\r\nSET_OFFSET_Y 0\r\nSET_OFFSET_Z 0\r\nSMOOTH_MAX_ANGLE 30\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 1\r\nset_fogging off\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Shape File Link\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : AniSTL115\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:47\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL115.par\r\n\r\n#BlueLink1 Animator: Shape File Link`Partly Cloudy Sky` Skies` , Animator data\r\n\r\nENTER_PARSFILE Animator\\STL\\AniSTL116.par`08-02-2011`16:43:48\r\n#FullDataName Animator: Shape File Link`Complex Land Bowl for Light Grass`Terrain\r\n#MiscYellow3\r\nadd_obj Animator\\3D_shape_files_CS\\scenery\\landbowls\\complex_land_for_light_grass.obj\r\n#ENDMYellow\r\n\r\nSET_COLOR .8 .8 .8\r\nSET_SCALE_X 15\r\nSET_SCALE_Y 15\r\nSET_SCALE_Z 1\r\n#RingCtrl0 1\r\n#CheckBox0 1\r\nset_lighting off\r\n#CheckBox1 0\r\nset_fogging on\r\n#CheckBox3 0\r\n#CheckBox4 0\r\n\r\nshow_front on\r\nshow_back off\r\n\r\n#BlueLink2 Animator: Camera Setup`Shape Preview (Top)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Shape File Link; { Terrain } Complex Land Bowl for Light Grass\r\n#Library : Animator: Shape File Link\r\n#DataSet : Complex Land Bowl for Light Grass\r\n#Category: Terrain\r\n#FileID  : AniSTL116\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:48\r\n#VehCode Shape File\r\n\r\nEXIT_PARSFILE Animator\\STL\\AniSTL116.par\r\n\r\n#BlueLink2 Animator: Shape File Link`Complex Land Bowl for Light Grass` Terrain` , Animator data\r\n\r\n\r\n#CheckBox0 0\r\n\r\n\r\n#BlueLink20 Animator: Camera Setup`Shape Preview (Side)` Shape Preview` , Animator camera\r\n\r\n\r\nLOG_ENTRY Used Dataset: Animator: Group; { Skies } Partly Cloudy Sky\r\n#Library : Animator: Group\r\n#DataSet : Partly Cloudy Sky\r\n#Category: Skies\r\n#FileID  : Group101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:52\r\n#VehCode Animator Group\r\n\r\nEXIT_PARSFILE Animator\\Groups\\Group101.par\r\n\r\n#BlueLink6 Animator: Group`Partly Cloudy Sky` Skies` , Misc. animator set\r\n\r\nadd_reference_frame road_stuff_2\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_3\r\nreference_frame_ghosts off\r\nadd_reference_frame road_stuff_4\r\nreference_frame_ghosts off\r\niroad 2 ! obsolete March 2011\r\nidz_road 2\r\n\r\nENTER_PARSFILE Animator\\Cameras\\Camera105.par`08-02-2011`16:43:54\r\n#FullDataName Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)`Road Reference\r\n#RingCtrl1 0\r\n\r\n#CheckBox0 0\r\n#CheckBox1 1\r\n\r\nGHOST_COUNT 0\r\nSET_CAMERA_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nENTER_PARSFILE Animator\\Frames\\Frame105.par`08-02-2011`16:43:51\r\n#FullDataName Animator: Reference Frame`Camera Rear Point w/ Yaw`Road Tracking\r\nADD_REFERENCE_FRAME Road Tracking Camera Rear Point w/ Yaw\r\n#RingCtrl0 yaw_pitch_roll\r\nSET_EULER_ANGLES yaw_pitch_roll\r\nSET_X_NAME X_camR\r\nSET_Y_NAME Y_camR\r\nSET_Z_NAME Z_camR\r\nSET_YAW_NAME Yaw_CamR\r\n\r\nWRT_X_camR\r\nANI_X_camR\r\nWRT_Y_camR\r\nANI_Y_camR\r\nWRT_Z_camR\r\nANI_Z_camR\r\nWRT_Yaw_CamR\r\nANI_Yaw_CamR\r\n\r\nLOG_ENTRY Used Dataset: Animator: Reference Frame; { Road Tracking } Camera Rear Point w/ Yaw\r\n#Library : Animator: Reference Frame\r\n#DataSet : Camera Rear Point w/ Yaw\r\n#Category: Road Tracking\r\n#FileID  : Frame105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:51\r\n#VehCode Reference frame\r\n\r\nEXIT_PARSFILE Animator\\Frames\\Frame105.par\r\n\r\n#BlueLink0 Animator: Reference Frame`Camera Rear Point w/ Yaw` Road Tracking` , Reference frame for outside camera\r\n\r\nSET_LOOKPOINT_Reference_Frame Road Tracking Camera Rear Point w/ Yaw\r\nSET_LOOKPOINT_X 5\r\nSET_LOOKPOINT_Y 0\r\nSET_LOOKPOINT_Z 1\r\nSET_AZIMUTH 180\r\nSET_ELEVATION 5\r\nSET_DISTANCE 49\r\n*SET_LOOKPOINT_X 5\r\n*SET_LOOKPOINT_Y 0\r\n*SET_LOOKPOINT_Z 1\r\n*SET_AZIMUTH 180\r\n*SET_ELEVATION 5\r\n*SET_DISTANCE 49\r\nGHOST_COUNT 0\r\n*LIGHT_X -1000\r\n*LIGHT_Y -1000\r\n*LIGHT_Z 10000\r\nFOG_SCALE 0.2\r\nSET_FIELD_OF_VIEW 30\r\nSUN_POSITION -1000 -1000 10000\r\n\r\nLOG_ENTRY Used Dataset: Animator: Camera Setup; { Road Reference } Rear View , Road Ref. (Frt. Facing)\r\n#Library : Animator: Camera Setup\r\n#DataSet : Rear View , Road Ref. (Frt. Facing)\r\n#Category: Road Reference\r\n#FileID  : Camera105\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:54\r\n#VehCode Camera\r\n\r\nEXIT_PARSFILE Animator\\Cameras\\Camera105.par\r\n\r\n#BlueLink5 Animator: Camera Setup`Rear View , Road Ref. (Frt. Facing)` Road Reference` , Camera\r\n\r\nENTER_PARSFILE Roads\\3D_Road\\Road122.ani`07-20-2011`03:07:16\r\nadd_reference_frame The Road\r\nreference_frame_ghosts off\r\n\r\nadd_obj Roads\\3D_Road\\Road122_1.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.15 0.15 0.15\r\n\r\nadd_obj Roads\\3D_Road\\Road122_2.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.15 0.15 0.15\r\n\r\nadd_obj Roads\\3D_Road\\Road122_3.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\nadd_obj Roads\\3D_Road\\Road122_4.obj\r\nset_color 0.9 0.9 0.9\r\nshow_front on\r\nshow_back off\r\ncompute_normals on\r\nset_specular 0.1 0.1 0.1\r\n\r\n\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road122.ani\r\n\r\n\r\nLOG_ENTRY Used Dataset: Road: 3D Surface (All Properties); { 3D Grid } 1 km Square\r\n#Library : Road: 3D Surface (All Properties)\r\n#DataSet : 1 km Square\r\n#Category: 3D Grid\r\n#FileID  : Road122\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:16\r\n#VehCode 3D road\r\n\r\nEXIT_PARSFILE Roads\\3D_Road\\Road122.par\r\n\r\n#BlueLink0 Road: 3D Surface (All Properties)`1 km Square` 3D Grid` , Misc.\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot109.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Longitudinal Speed`Vehicle Motion\r\nENTER_PARSFILE Plot\\Transform\\PlotTfm101.par`08-02-2011`16:43:01\r\n#FullDataName Plot: Data Transform`No Filter`\r\n#RingCtrl0 None\r\nFILTER None\r\n\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Data Transform; No Filter\r\n#Library : Plot: Data Transform\r\n#DataSet : No Filter\r\n#Category:\r\n#FileID  : PlotTfm101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:01\r\n#VehCode Plot data transform\r\n\r\nEXIT_PARSFILE Plot\\Transform\\PlotTfm101.par\r\n\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\nENTER_PARSFILE Plot\\Format\\PlotFmt101.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Format`Default Plot Settings`\r\n#RingCtrl0 Axes\r\nAXES Axes\r\n#RingCtrl1 Noframe\r\nFRAME Noframe\r\n#RingCtrl2 NoGrid\r\nGRID NoGrid\r\n#RingCtrl3 FileTitle\r\nLEGENDFILE FileTitle\r\n#RingCtrl4 RigidBodyName\r\nLEGENDDATA_1 RigidBodyName\r\n#RingCtrl5 AutoLocation\r\nLEGENDLOCATION AutoLocation\r\n#RingCtrl6 Regular\r\nTITLEFONTSTYLE Regular\r\n#RingCtrl7 Regular\r\nLEGENDFONTSTYLE Regular\r\n#RingCtrl8 Regular\r\nLABELFONTSTYLE Regular\r\n#RingCtrl9 Regular\r\nTICLABELFONTSTYLE Regular\r\n#RingCtrl10 0\r\nTITLELOCATION 0\r\nLEGENDPERCENT 40\r\nTITLEFONTSIZE 14\r\nLEGENDFONTSIZE 12\r\nLABELFONTSIZE 14\r\nTICLABELFONTSIZE 12\r\n\r\nTITLEFONTNAME Arial\r\nLEGENDFONTNAME Arial\r\nLABELFONTNAME Arial\r\nTICLABELFONTNAME Arial\r\nSYMBOLS 10,1,2,3,4,5,6,7,8,9,10,4,1,2,3,4,5,6,7,8\r\nLINESTYL 1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1\r\nCOLORS 8,2,3,7,4,0,6,14,8,9,10,11,12,13,14,6,1,2,0,4\r\n\r\nLOG_ENTRY Used Dataset: Plot: Format; Default Plot Settings\r\n#Library : Plot: Format\r\n#DataSet : Default Plot Settings\r\n#Category:\r\n#FileID  : PlotFmt101\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot format\r\n\r\nEXIT_PARSFILE Plot\\Format\\PlotFmt101.par\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Vx, Time\r\nPLOTCHANNELS VxTarget, Time\r\nPLOTCHANNELS Vx_2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Longitudinal Speed\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Vehicle Motion } Longitudinal Speed\r\n#Library : Plot: Setup\r\n#DataSet : Longitudinal Speed\r\n#Category: Vehicle Motion\r\n#FileID  : Plot109\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot109.par\r\n\r\n#BlueLink8 Plot: Setup`Longitudinal Speed` Vehicle Motion` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot118.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Throttle: Control Input`Controls: Driver\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Throttle, Time\r\nPLOTCHANNELS Thr_Eng, Time\r\n\r\n#ENDMYellow\r\n\r\nYAXISLABEL Throttle -\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Throttle: Control Input\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Controls: Driver } Throttle: Control Input\r\n#Library : Plot: Setup\r\n#DataSet : Throttle: Control Input\r\n#Category: Controls: Driver\r\n#FileID  : Plot118\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nENTRY_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\nThe variable \"Throttle\" is the sum of any throttle control calculated by the CarSim closed loop speed controller and any specified open-loop throttle.\r\n\r\nThe source of open-loop throttle command may be from internal tables, VS commmands, or external sources like Simulink or the API.\r\n\r\nBy using the sum of these 2 command sources you can implement things like driver aids for active safety that augment actions taken by the driver.\r\n\r\nWhen switching between open loop and closed loop control, take care that no unintended open loop control is \"left over\" by supplying a data set that sets the open loop component to zero.\r\n\r\nThe variable \"Thr_Eng\" is the value of \"Throttle\", optionally modified by the application of a time constant to simulate the transient delay in changes in engine torque.\r\nEXIT_NOTEFILE Plot\\Setup\\Plot118_note.txt\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot118.par\r\n\r\n#BlueLink9 Plot: Setup`Throttle: Control Input` Controls: Driver` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot203.par`08-02-2011`16:42:56\r\n#FullDataName Plot: Setup`Wheel Cylinder Pressures`Braking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS PbkCh_L1, Time\r\nPLOTCHANNELS PbkCh_R1, Time\r\nPLOTCHANNELS PbkCh_L2, Time\r\nPLOTCHANNELS PbkCh_R2, Time\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Wheel Cylinder Pressures\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Braking } Wheel Cylinder Pressures\r\n#Library : Plot: Setup\r\n#DataSet : Wheel Cylinder Pressures\r\n#Category: Braking\r\n#FileID  : Plot203\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:42:56\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot203.par\r\n\r\n#BlueLink10 Plot: Setup`Wheel Cylinder Pressures` Braking` , Plot\r\n\r\nENTER_PARSFILE Plot\\Setup\\Plot141.par`08-02-2011`16:43:00\r\n#FullDataName Plot: Setup`Y vs. X -- Trajectory`Tracking\r\n#BlueLink1 Plot: Data Transform`No Filter` ` , Data transform (optional)\r\n\r\n\r\n\r\n#MiscYellow0\r\nPLOTCHANNELS Yo, Xo\r\nPLOTCHANNELS Y_Design, X_Design\r\nPLOTCHANNELS Y_Target, X_Target\r\nPLOTCHANNELS Yo_2, Xo_2\r\n\r\n#ENDMYellow\r\n\r\n\r\n#RingCtrl0 Linear\r\nYLINEAR Linear\r\n#RingCtrl1 Linear\r\nXLINEAR Linear\r\n#RingCtrl2 Auto\r\nYMaxmin Auto\r\n#RingCtrl3 Auto\r\nXMaxmin Auto\r\n#RingCtrl4 0\r\n#RingCtrl5 0\r\n#RingCtrl6 0\r\n#RingCtrl7 0\r\n\r\n\r\nPTITLE Y vs. X -- Trajectory\r\n\r\n\r\nLOG_ENTRY Used Dataset: Plot: Setup; { Tracking } Y vs. X -- Trajectory\r\n#Library : Plot: Setup\r\n#DataSet : Y vs. X -- Trajectory\r\n#Category: Tracking\r\n#FileID  : Plot141\r\n#Product : CarSim Version 8.1, August 2011\r\n#Last update: 08-02-2011 16:43:00\r\n#VehCode Plot setup\r\n\r\nEXIT_PARSFILE Plot\\Setup\\Plot141.par\r\n\r\n#BlueLink11 Plot: Setup`Y vs. X -- Trajectory` Tracking` , Plot\r\n\r\n\r\nLOG_ENTRY Used Dataset: Procedures; { BOOK_MPC_Procedures } SinSteeer_CorneringStiffness_Hat\r\n#Library : Procedures\r\n#DataSet : SinSteeer_CorneringStiffness_Hat\r\n#Category: BOOK_MPC_Procedures\r\n#FileID  : Proc162\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-24-2019 03:04:50\r\n#VehCode Procedure\r\n\r\nEXIT_PARSFILE Procedures\\Proc162.par\r\n\r\n#BlueLink28 Procedures`SinSteeer_CorneringStiffness_Hat` BOOK_MPC_Procedures` , Procedure\r\n\r\n\r\n*IMAGE_LINK Animator: Vehicles and Sensor Targets`D-Class, SUV` D-Class Vehicles`\r\nWRITE_SENSOR_DETECT\r\nTitle Chapter5_CorneringStiffness_Estimation <BOOK_MPC_Examples>\r\nCATEGORY BOOK_MPC_Examples\r\nDATASET_TITLE Chapter5_CorneringStiffness_Estimation\r\n\r\nLOG_ENTRY Used Dataset: CarSim Run Control; { BOOK_MPC_Examples } Chapter5_CorneringStiffness_Estimation\r\n#Library : CarSim Run Control\r\n#DataSet : Chapter5_CorneringStiffness_Estimation\r\n#Category: BOOK_MPC_Examples\r\n#FileID  : Run274\r\n#Product : CarSim Version 8.1a, October 2011\r\n#Last update: 08-24-2019 03:12:26\r\n#VehCode Run\r\n\r\nEXIT_PARSFILE Runs\\Run274.par\r\n\r\n\r\n\r\nEND\r\n"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/CorneringStiffness_Estimation.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"CorneringStiffness_Estimation\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.296\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"DynamicsEstimation\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [1018.0, 316.0, 809.0, 544.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[759.0, 367.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[268.00714285714218, 235.39999999999998]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sat Aug 24 03:16:12 2019\"\r\n  RTWModifiedTimeStamp\t  488517221\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:296>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"CorneringStiffness_Estimation\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"CorneringStiffness_Estimation\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"40\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"CorneringStiffness_Estimation\"\r\n    Location\t\t    [1018, 316, 1827, 860]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"146\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [350, 286, 445, 354]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_CornerStiffness_Estimation.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [475, 287, 705, 353]\r\n      ZOrder\t\t      12\r\n      FunctionName\t      \"Main_CorneringStiffness_Estimation\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [735, 302, 830, 338]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"Outputed_Data\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      131\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      132\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"To Workspace\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/Main_CorneringStiffness_Comparison_RLS_Alt_new.m",
    "content": "function [sys,x0,str,ts] =Main_CorneringStiffness_Comparison_RLS_Alt_new(t,x,u,flag)\r\n%***************************************************************%\r\n% lf, lr are known;\r\n% ay, ax, delta_f and Beta are measurable\r\n% Using RLS to online identification [C_alpha_f_hat, C_alpha_r_hat]\r\n% \r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com \r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 4;  %S\r\nsizes.NumInputs      = 13; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%------------Global parameters and initialization--------------------%\r\n    % online identification RLS initialization\r\n    [y, e] = func_RLSFilter_Calpha_f_useFyf('initial', 0.95, 10, 10);\r\n    [y, e] = func_RLSFilter_Calpha_r_useFyr('initial', 0.95, 10, 10);\r\n \r\n    global params; \r\n    params.nCoefficients = 1;\r\n    params.delta = 10;\r\n    params.initialCoefficients = [-110000];\r\n    params.lambda = 0.95;\r\n%     params.nDataTuple = 2; %filter order, number of data tuple\r\n    [y, e, c] = func_RLS_Alt_New('initial', 0, params);   \r\n\r\n    global pre_regressor;\r\n    nc = 1;\r\n    nd = 10;\r\n    pre_regressor.input = zeros(nc,nd);\r\n    pre_regressor.d     = zeros(nd,1);\r\n    \r\n    % vehicle parameters initialization\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehicleParams; % for SUV\r\n    VehicleParams.Lf  = 1.12;  % 1.05\r\n    VehicleParams.Lr  = 1.48;  % 1.55\r\n    VehicleParams.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n\r\n    global DataTupleFlag; \r\n    DataTupleFlag = 0; % the first few inputs don't count. Gap it.  \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n% global Initial_State; \r\n% global P; \r\n% global PreviousYawrate; \r\n    \r\nglobal InitialGapflag;\r\nglobal VehicleParams;\r\nglobal params; \r\nglobal pre_regressor;\r\nglobal DataTupleFlag;\r\n\r\nCf_Hat           = 0;\r\nCr_Hat           = 0;\r\nC_alpha_f_Alt    = 0;\r\nC_alpha_r_Alt    = 0;\r\n\r\n\r\nt_Elapsed       = 0;\r\nAy_G_SM         = 0;\r\nAx              = 0;  \r\nfwa             = 0;\r\nBeta            = 0;\r\n\r\nalphaf = 0;\r\nalphar = 0;\r\nArfa_f = 0;\r\nArfa_r = 0;\r\n\r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [Carsim_export] = func_CarsimData_Parse(u);   \r\n    Vx            = Carsim_export.x_dot; \r\n    Vy            = Carsim_export.y_dot; \r\n    yawrate       = Carsim_export.phi_dot; % rad/s\r\n    fwa           = Carsim_export.fwa;\r\n    Fyf           = Carsim_export.Fyf;\r\n    Fyr           = Carsim_export.Fyr;   \r\n    alphaf_Direct = Carsim_export.alphaf;\r\n    alphar_Direct = Carsim_export.alphar;\r\n    %-----I. Estimate Cornering stiffness using old method----------------%  \r\n    alphaf_Hat = (Vy + yawrate*VehicleParams.Lf)/Vx - fwa;\r\n    [yf, Calpha_f] = func_RLSFilter_Calpha_f_useFyf(alphaf_Hat, Fyf);\r\n    Cf_Hat = sum(Calpha_f);\r\n    \r\n    %for rear tire \r\n    alphar_Hat = (Vy - yawrate*VehicleParams.Lr)/Vx;\r\n    [yr, Calpha_r] = func_RLSFilter_Calpha_r_useFyr(alphar_Hat, Fyr);\r\n    Cr_Hat =sum(Calpha_r);\r\n\r\n    \r\n    %-----II. Estimate Cornering stiffness using Matrix method----------%  \r\n    if (DataTupleFlag < 10 )\r\n        for J = 10:-1:2\r\n            pre_regressor.input(J)  = pre_regressor.input(J-1);\r\n            pre_regressor.d(J)      = pre_regressor.d(J-1);\r\n        end;\r\n        pre_regressor.input(1)      = alphar_Direct;\r\n        pre_regressor.d(1)          = Fyr;\r\n        DataTupleFlag               = DataTupleFlag + 1;\r\n    else\r\n        for J = 10:-1:2\r\n            pre_regressor.input(J)  = pre_regressor.input(J-1);\r\n            pre_regressor.d(J)      = pre_regressor.d(J-1);\r\n        end;\r\n        pre_regressor.input(1) = alphar_Direct;\r\n        pre_regressor.d(1) = Fyr;\r\n        [outputVector, errorVector, coefficientVector] = func_RLS_Alt_New(pre_regressor.d, pre_regressor.input, params);   \r\n        params.initialCoefficients = coefficientVector;\r\n\r\n        C_alpha_f_Alt = 0;\r\n        C_alpha_r_Alt = coefficientVector;    \r\n    end\r\n\r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    t_Elapsed  = toc(t_Start);\r\n     \r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Cf_Hat; Cr_Hat; C_alpha_f_Alt; C_alpha_r_Alt]; % \r\n\r\n% sys = [t_Elapsed; Ax; Ay_G_SM; fwa; Beta; Vel; Vy; yawrate; Roll; Rollrate; vx_hat; vy_hat; yawrate_hat; roll_hat; rollrate_hat; CafHat; CarHat; C_alpha_f_hat_ay; C_alpha_r_hat_ay]; % \r\n    \r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [Sparsed_Carsim_Data] = func_CarsimData_Parse(CarsimData)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    Sparsed_Carsim_Data.x_dot   = CarsimData(1)/3.6; %Unit:km/h-->m/s1λС  \r\n    Sparsed_Carsim_Data.y_dot   = CarsimData(2)/3.6; %Unit:km/h-->m/s1λС   \r\n    Sparsed_Carsim_Data.phi_dot = (round(10*CarsimData(3))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    Sparsed_Carsim_Data.fwa     = (round(10*0.5*(CarsimData(4)+ CarsimData(5)))/10)*pi/180; % deg-->rad\r\n    Sparsed_Carsim_Data.alphaf     = (round(10*0.5 * (CarsimData(6)+ CarsimData(8)))/10)*pi/180; % deg-->rad1λС   \r\n    Sparsed_Carsim_Data.alphar     = (round(10*0.5 * (CarsimData(7)+ CarsimData(9)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    Fy_l1      = round(10*CarsimData(10))/10; %Unit:N1λС  \r\n    Fy_l2      = round(10*CarsimData(11))/10; %Unit:N1λС  \r\n    Fy_r1      = round(10*CarsimData(12))/10; %Unit:N1λС  \r\n    Fy_r2      = round(10*CarsimData(13))/10; %Unit:N1λС  \r\n    Sparsed_Carsim_Data.Fyf  = Fy_l1 + Fy_r1;\r\n    Sparsed_Carsim_Data.Fyr  = Fy_l2 + Fy_r2;    \r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/Main_CorneringStiffness_Estimation.m",
    "content": "function [sys,x0,str,ts] =Main_CorneringStiffness_Estimation(t,x,u,flag)\r\n%***************************************************************%\r\n% Simulation for estimation of cornering stiffness using RLS method\r\n% Assume: lf, lr are known; \r\n% Assume: Vy, Vel, steering_angle and side-slip angle are measurable\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵ\r\nsizes.NumOutputs     = 10; %Sеĸ\r\nsizes.NumInputs      = 13; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). \r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05s \r\n\r\n%------------Global parameters and initialization--------------------%\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % Ignore the first few inputs from CarSim\r\n    % vehicle parameters initialization\r\n    global VehicleParams; % for SUV\r\n    VehicleParams.Lf  = 1.12;  % 1.05\r\n    VehicleParams.Lr  = 1.48;  % 1.55\r\n\r\n    \r\n    % RLS initialization\r\n    [y, c] = func_RLSEstimation_Cf('initial', 0.95, 1, 10);\r\n    [y, c] = func_RLSEstimation_Cr('initial', 0.95, 1, 10);\r\n%     \r\n%     global RLS_params; \r\n%     RLS_params.nDataTuple    = 10;\r\n%     RLS_params.nCoefficients = 1;\r\n%     RLS_params.initialCoefficients = -90000* ones(RLS_params.nCoefficients,1);    \r\n%     RLS_params.delta         = 10;\r\n%     RLS_params.lambda = 0.95;\r\n%     [y, e, c] = func_RLS_Alt_New('initial', 0, params);   \r\n% \r\n%     global pre_regressor;\r\n%     nc = 1;\r\n%     nd = 10;\r\n%     pre_regressor.input = zeros(nc,nd);\r\n%     pre_regressor.d     = zeros(nd,1);\r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  Ŀǰûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nglobal InitialGapflag;\r\nglobal VehicleParams;\r\n\r\nCf_Hat        = 0;\r\nCr_Hat        = 0;\r\nRinv_f        = 0; \r\nRinv_r        = 0;\r\nHat_err_f     = 0;\r\nHat_err_r     = 0;  \r\nalpha_f_Hat    = 0;\r\nalpha_r_Hat    = 0; \r\nalpha_f_Direct = 0;\r\nalpha_r_Direct = 0;\r\n\r\nif InitialGapflag < 3 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %-----Update State Estimation of measured Vehicle Configuration------%\r\n    [Carsim_export] = func_CarsimData_Parse(u);   \r\n    Vx            = Carsim_export.x_dot; \r\n    Vy            = Carsim_export.y_dot; \r\n    yawrate       = Carsim_export.phi_dot; % rad/s\r\n    fwa           = Carsim_export.fwa;\r\n    Fyf_Direct    = Carsim_export.Fyf;\r\n    Fyr_Direct    = Carsim_export.Fyr;   \r\n    alpha_f_Direct = Carsim_export.alphaf;\r\n    alpha_r_Direct = Carsim_export.alphar;\r\n\r\n    %-----Estimate Cornering stiffness use estimated sideslip angle-----%  \r\n    %for front tire\r\n    alpha_f_Hat = (Vy + yawrate*VehicleParams.Lf)/Vx - fwa;\r\n    [Fyf_hat, Cf_Hat, Rinv_f] = func_RLSEstimation_Cf(alpha_f_Hat, Fyf_Direct);\r\n    Hat_err_f = Fyf_hat - Fyf_Direct;\r\n    %for rear tire \r\n    alpha_r_Hat = (Vy - yawrate*VehicleParams.Lr)/Vx;\r\n    [Fyr_hat, Cr_Hat, Rinv_r] = func_RLSEstimation_Cr(alpha_r_Hat, Fyr_Direct);\r\n    Hat_err_r = Fyr_hat - Fyr_Direct;\r\n    %-Estimate Cornering stiffness use direct sideslip angle from CarSim-%  \r\n    \r\n    \r\nend % end of if Initialflag < 2 % \r\n    \r\nsys = [Cf_Hat; Cr_Hat; Rinv_f; Hat_err_f; Rinv_r; Hat_err_r; alpha_f_Hat; alpha_r_Hat; alpha_f_Direct; alpha_r_Direct]; % \r\n\r\n% sys = [t_Elapsed; Ax; Ay_G_SM; fwa; Beta; Vel; Vy; yawrate; Roll; Rollrate; vx_hat; vy_hat; yawrate_hat; roll_hat; rollrate_hat; CafHat; CarHat; C_alpha_f_hat_ay; C_alpha_r_hat_ay]; % \r\n    \r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [Sparsed_Carsim_Data] = func_CarsimData_Parse(CarsimData)\r\n%***************************************************************%\r\n% Parse data exported from CarSim, ˳CarSimһ\r\n%***************************************************************%       \r\n    Sparsed_Carsim_Data.x_dot   = CarsimData(1)/3.6; %Unit:km/h-->m/s1λС  \r\n    Sparsed_Carsim_Data.y_dot   = CarsimData(2)/3.6; %Unit:km/h-->m/s1λС   \r\n    Sparsed_Carsim_Data.phi_dot = (round(10*CarsimData(3))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    Sparsed_Carsim_Data.fwa     = (round(10*0.5*(CarsimData(4)+ CarsimData(5)))/10)*pi/180; % deg-->rad\r\n    Sparsed_Carsim_Data.alphaf     = (round(10*0.5 * (CarsimData(6)+ CarsimData(8)))/10)*pi/180; % deg-->rad1λС   \r\n    Sparsed_Carsim_Data.alphar     = (round(10*0.5 * (CarsimData(7)+ CarsimData(9)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    Fy_l1      = round(10*CarsimData(10))/10; %Unit:N1λС  \r\n    Fy_l2      = round(10*CarsimData(11))/10; %Unit:N1λС  \r\n    Fy_r1      = round(10*CarsimData(12))/10; %Unit:N1λС  \r\n    Fy_r2      = round(10*CarsimData(13))/10; %Unit:N1λС  \r\n    Sparsed_Carsim_Data.Fyf  = Fy_l1 + Fy_r1;\r\n    Sparsed_Carsim_Data.Fyr  = Fy_l2 + Fy_r2;    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/ReadMe",
    "content": "Tire Cornering Stiffness Estimation use RLS method\n"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/func_RLSEstimation_Cf.m",
    "content": "function [y, Bout, R_f_out] = func_RLSEstimation_Cf(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_f, Num_f, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_f: is also called the \"forgetting\" exponential weight factor\r\n%     Num_f is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_f F_f B_f lambda_f  Num_f  Rinv_f  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_f = d;\r\n%         delta = delta_n;\r\n        Num_f = FIR_Num;\r\n        Rinv_f = delta_n*eye(Num_f);\r\n        F_f = zeros(Num_f,1);\r\n        Y_f = zeros(1, Num_f);\r\n        B_f =  -92000; %zeros(1,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_f:-1:2\r\n            F_f(J) = F_f(J-1);\r\n            Y_f(J) = Y_f(J-1);\r\n        end;\r\n        F_f(1) = f;\r\n        Y_f(1) = d;\r\n        % Perform the convolution\r\n        y= F_f'*B_f;\r\n        error=Y_f-y;% 1*nd\r\n        % Kalman gains\r\n        K = Rinv_f*F_f/(lambda_f + F_f'*Rinv_f*F_f);\r\n        % Update Rinv_f\r\n        Rinvn = (Rinv_f - K*F_f'*Rinv_f)/lambda_f;\r\n        % Update the filter coefficients\r\n        B_f = B_f + K*error;\r\n        Rinv_f = Rinvn;\r\n\r\n        Bout = B_f;     \r\n        R_f_out = Rinv_f;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/func_RLSEstimation_Cr.m",
    "content": "function [y, Bout, R_r_out] = func_RLSEstimation_Cr(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_r, Num_r, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_r: is also called the \"forgetting\" exponential weight factor\r\n%     Num_r is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_r F_r B_r lambda_r  Num_r  Rinv_r  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_r = d;\r\n%         delta = delta_n;\r\n        Num_r = FIR_Num;\r\n        Rinv_r = delta_n*eye(Num_r);\r\n        F_r = zeros(Num_r,1);\r\n        Y_r = zeros(1, Num_r);\r\n        B_r = -92000; %zeros(Num_r,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_r:-1:2\r\n            F_r(J) = F_r(J-1);\r\n            Y_r(J) = Y_r(J-1);\r\n        end;\r\n        F_r(1) = f;\r\n        Y_r(1) = d;\r\n        % Perform the convolution\r\n        y= F_r'*B_r;\r\n        error=Y_r-y;\r\n        % Kalman gains\r\n        K = Rinv_r*F_r/(lambda_r + F_r'*Rinv_r*F_r);\r\n        % Update Rinv_r\r\n        Rinvn = (Rinv_r - K*F_r'*Rinv_r)/lambda_r;\r\n        % Update the filter coefficients\r\n        B_r = B_r + K*error;\r\n        Rinv_r = Rinvn;\r\n        \r\n        Bout = B_r;\r\n        R_r_out = Rinv_r;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/func_RLSFilter_Calpha_f.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_f(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_f, Num_f, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_f: is also called the \"forgetting\" exponential weight factor\r\n%     Num_f is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_f B_f lambda_f  Num_f  Rinv_f  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_f = d;\r\n%         delta = delta_n;\r\n        Num_f = FIR_Num;\r\n        Rinv_f = delta_n*eye(Num_f);\r\n        F_f = zeros(Num_f,1);\r\n        B_f = zeros(Num_f,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_f:-1:2\r\n            F_f(J) = F_f(J-1);\r\n        end;\r\n        F_f(1) = f;\r\n        % Perform the convolution\r\n        y= F_f'*B_f;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_f*F_f/(lambda_f + F_f'*Rinv_f*F_f);\r\n        % Update Rinv_f\r\n        Rinvn = (Rinv_f - K*F_f'*Rinv_f)/lambda_f;\r\n        % Update the filter coefficients\r\n        B_f = B_f + K*error;\r\n        Bout = B_f;\r\n        Rinv_f = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/func_RLSFilter_Calpha_f_useFyf.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_f_useFyf(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_f, Num_f, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_f: is also called the \"forgetting\" exponential weight factor\r\n%     Num_f is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_f F_f B_f lambda_f  Num_f  Rinv_f  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_f = d;\r\n%         delta = delta_n;\r\n        Num_f = FIR_Num;\r\n        Rinv_f = delta_n*eye(Num_f);\r\n        F_f = zeros(Num_f,1);\r\n        Y_f = zeros(1, Num_f);\r\n        B_f = -90000; % zeros(Num_f,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_f:-1:2\r\n            F_f(J) = F_f(J-1);\r\n            Y_f(J) = Y_f(J-1);\r\n        end;\r\n        F_f(1) = f;\r\n        Y_f(1) = d;\r\n        % Perform the convolution\r\n        y= F_f'*B_f;\r\n        error=Y_f-y; % 1*nd\r\n        % Kalman gains\r\n        K = Rinv_f*F_f/(lambda_f + F_f'*Rinv_f*F_f);\r\n        % Update Rinv_f\r\n        Rinvn = (Rinv_f - K*F_f'*Rinv_f)/lambda_f;\r\n        % Update the filter coefficients\r\n        B_f = B_f +error *K;\r\n        Bout = B_f;\r\n        Rinv_f = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/func_RLSFilter_Calpha_r.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_r(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_r, Num_r, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_r: is also called the \"forgetting\" exponential weight factor\r\n%     Num_r is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_r B_r lambda_r  Num_r  Rinv_r  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_r = d;\r\n%         delta = delta_n;\r\n        Num_r = FIR_Num;\r\n        Rinv_r = delta_n*eye(Num_r);\r\n        F_r = zeros(Num_r,1);\r\n        B_r = zeros(Num_r,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_r:-1:2\r\n            F_r(J) = F_r(J-1);\r\n        end;\r\n        F_r(1) = f;\r\n        % Perform the convolution\r\n        y= F_r'*B_r;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_r*F_r/(lambda_r + F_r'*Rinv_r*F_r);\r\n        % Update Rinv_r\r\n        Rinvn = (Rinv_r - K*F_r'*Rinv_r)/lambda_r;\r\n        % Update the filter coefficients\r\n        B_r = B_r + K*error;\r\n        Bout = B_r;\r\n        Rinv_r = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_CorneringStiffness_Estimation/func_RLSFilter_Calpha_r_useFyr.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_r_useFyr(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_r, Num_r, delta)\r\n%     d = lambda_r: is the convergence rate parameter,\r\n%           also called the \"forgetting\" exponential weight factor\r\n%     FIR_Num is the filter length\r\n%     delta_n are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_r B_r lambda_r  Num_r  Rinv_r  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_r = d;\r\n%         delta = delta_n;\r\n        Num_r = FIR_Num;\r\n        Rinv_r = delta_n*eye(Num_r);\r\n        F_r = zeros(Num_r,1);\r\n        B_r = zeros(Num_r,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_r:-1:2\r\n            F_r(J) = F_r(J-1);\r\n        end;\r\n        F_r(1) = f;\r\n        % Perform the convolution\r\n        y= F_r'*B_r;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_r*F_r/(lambda_r + F_r'*Rinv_r*F_r);\r\n        % Update Rinv_r\r\n        Rinvn = (Rinv_r - K*F_r'*Rinv_r)/lambda_r;\r\n        % Update the filter coefficients\r\n        B_r = B_r + K*error;\r\n        Bout = B_r;\r\n        Rinv_r = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/Generate_Double_Line_Shift_refpath.m",
    "content": "%***************************************************************%\r\n% ˫Ĳο·\r\n% 趨ٶΪ1m/s, ʱΪ0.1s, ÿ·xϵľΪ0.1m\r\n% Ĳο·.matļ[X_ref, Yref, Heading_ref]\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My homepage: https://sites.google.com/site/kailiumiracle/ \r\n%***************************************************************%\r\n    %---------------˫߹켣״-------%\r\n    shape = 2.4;%ƣڲο켣\r\n    dx1 = 25; \r\n    dx2 = 21.95;%ûκʵ壬ֻǲ\r\n    dy1 = 4.05; \r\n    dy2 = 5.7;%ûκʵ壬ֻǲ\r\n    Xs1 = 27.19; \r\n    Xs2 = 56.46;%\r\n\r\n    DataNum = 3000; %\r\n    DLS_path_cell = cell(DataNum,1);\r\n    Ts    = 0.1;   \r\n    X_DOT = 1.0;  %ϵٶ\r\n    \r\n%%    \r\n    X_0   = -50;  % ο·Xʼ\r\n    Line_segment_Num = 500;\r\n    for p = 1 : 1 : Line_segment_Num\r\n        X_ref       = X_0 + X_DOT * p * Ts; %ȼδXλ\r\n        Y_ref       = 0;\r\n        Heading_ref = 0;\r\n        DLS_path_cell{p,1} = [X_ref, Y_ref, Heading_ref];\r\n    end\r\n\r\n    X_0 = 0;\r\n    for p = 1 : 1 : DataNum-Line_segment_Num\r\n        X_ref       = X_0 + X_DOT * p * Ts; %ȼδXλ\r\n        z1          = shape/dx1*(X_ref - Xs1) - shape/2;\r\n        z2          = shape/dx2*(X_ref - Xs2) - shape/2;\r\n        Y_ref       = dy1/2*(1+tanh(z1)) - dy2/2*(1+tanh(z2));\r\n        Heading_ref = atan(dy1*(1/cosh(z1))^2*(1.2/dx1) - dy2*(1/cosh(z2))^2*(1.2/dx2));\r\n        DLS_path_cell{Line_segment_Num + p,1} = [X_ref, Y_ref, Heading_ref];\r\n    end\r\n    \r\n    \r\n    DLS_path=cell2mat(DLS_path_cell);\r\n\r\n    save Waypoints_Double_Line_Shift.mat DLS_path;\r\n\r\n%%\r\nfigure(1)\r\nplot(DLS_path(:,1), DLS_path(:,2), 'k');\r\n\r\nfigure(2)\r\nplot(1:DataNum, DLS_path(:,3), 'b');\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/Main_MPC_Dynamics_AFS.m",
    "content": "function [sys,x0,str,ts] =Main_MPC_Dynamics_AFS(t,x,u,flag)\r\n%***************************************************************%\r\n% óܣԻĳѧģͣСǶȼ裩MPC\r\n% ʵֲͬ·µ˫߸٣Simulink/CarSimʵϷ\r\n% MATLAB汾R2013b,CarSim汾8.1\r\n% ״̬=[y_dot,x_dot,phi,phi_dot,Y,X]Ϊǰƫdelta_f\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 7;  %S\r\nsizes.NumInputs      = 25; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). \r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\nsys = simsizes(sizes);    %󸳸sys\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05s \r\n\r\n%--Global parameters and initialization\r\n    % [y, e] = func_RLSFilter_Ccf('initial', 0.95, 10, 10);\r\n    % [y, e] = func_RLSFilter_Ccr('initial', 0.95, 10, 10);\r\n    % [y, e] = func_RLSFilter_Clf('initial', 0.95, 10, 10);\r\n    % [y, e] = func_RLSFilter_Clr('initial', 0.95, 10, 10);\r\n\r\nglobal InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\nglobal VehiclePara; % for SUV\r\n    VehiclePara.m   = 1600;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g   = 9.81;\r\n    VehiclePara.hCG = 0.65;%m\r\n    VehiclePara.Lf  = 1.12;  % 1.05\r\n    VehiclePara.Lr  = 1.48;  % 1.55\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n    VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n    VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n    VehiclePara.Radius = 0.387;  % ̥뾶   \r\n    \r\nglobal MPCParameters; \r\n    MPCParameters.Np  = 25;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Nc  = 15; %  Tsplit\r\n    MPCParameters.Ts  = 0.05; % the sample time of near term  \r\n    MPCParameters.Nx  = 6; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\nglobal WarmStart;\r\n    WarmStart = zeros(MPCParameters.Nu * MPCParameters.Nc,1);\r\n    \r\nglobal CostWeights; \r\n    CostWeights.Wephi    = 100; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey      = 100;\r\n    CostWeights.WDdeltaf = 1000;\r\n\r\nglobal Constraints;\r\n%     Constraints.dumax   = 0.08; % Units: rad,0.08rad=4.6deg\r\n%     Constraints.dumax   = 0.1; % Units: rad,0.1rad=5.7deg  \r\n    Constraints.dumax   = 0.0148; % Units: rad,0.0148rad = 0.8deg\r\n    Constraints.umax    = 0.4;  % Units: rad, 0.4rad=23deg\r\n    \r\n    Constraints.ycmin   = [-0.5;  -5];\r\n    Constraints.ycmax   = [0.5;   5];\r\n\r\nglobal WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n\r\nglobal Reftraj;\r\n    Reftraj = load('Waypoints_Double_Line_Shift.mat'); \r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal WarmStart;\r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\n    \r\nTs = MPCParameters.Ts;\r\nNp = MPCParameters.Np;\r\nNc = MPCParameters.Nc;\r\nNx = MPCParameters.Nx;\r\nNy = MPCParameters.Ny;\r\nNu = MPCParameters.Nu;\r\nNaug = Nx + Nu;\r\n\r\nSteer_SW_deg    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPhi          = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\n\r\nif InitialGapflag < 2 %  get rid of the first two inputs\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %**********Step (2). Update state and tire-stiffness estimation ******% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration-------%\r\n    y_dot = u(1)/3.6; %CarSimkm/hתΪm/s\r\n    x_dot = u(2)/3.6;%CarSimkm/hתΪm/s\r\n    if (0 == x_dot) %x_dot=0ΪһǳСַֹĸΪ\r\n        x_dot = 0.001;\r\n    end\r\n    PosPhi = u(3)*pi/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot = u(4)*pi/180;% deg/s-->rad/s\r\n    PosY = u(5);%λΪm\r\n    PosX = u(6);%λΪ\r\n    steer_L1 = u(7);\r\n    steer_R1 = u(8);\r\n    steer_deg = 0.5*(steer_L1 + steer_R1);\r\n    delta_f_rad = steer_deg*pi/180;\r\n    Beta = u(9)*pi/180;% Ĳƫ, Unit:deg-->rad\r\n    slip_ratio_L1 = u(10);\r\n    slip_ratio_L2 = u(11);\r\n    slip_ratio_R1 = u(12);\r\n    slip_ratio_R2 = u(13);\r\n    Sf = 0.5*(slip_ratio_L1 +slip_ratio_R1);%ǰֵĻ\r\n    Sr = 0.5*(slip_ratio_L2 +slip_ratio_R2);%ֵĻ\r\n    alpha_L1 = u(14);\r\n    alpha_L2 = u(15);\r\n    alpha_R1 = u(16);\r\n    alpha_R2 = u(17);\r\n    alpha_f = 0.5*(alpha_L1 + alpha_R1);\r\n    alpha_r = 0.5*(alpha_L2 + alpha_R2);\r\n    Fy_l1      = round(10*u(18))/10; % N \r\n    Fy_l2      = round(10*u(19))/10; % N \r\n    Fy_r1      = round(10*u(20))/10; % N \r\n    Fy_r2      = round(10*u(21))/10; % N \r\n    Fyf        = Fy_l1 + Fy_r1;\r\n    Fyr        = Fy_l2 + Fy_r2;\r\n    Fx_L1      = u(22);\r\n    Fx_L2      = u(23);\r\n    Fx_R1      = u(24);\r\n    Fx_R2      = u(25);    \r\n    Fxf        = Fx_L1 + Fx_R1;\r\n    Fxr        = Fx_L2 + Fx_R2;\r\n\r\n    %-----Update augmented state vector--------------% \r\n    kesi    = zeros(Naug, 1);\r\n    kesi(1) = y_dot;\r\n    kesi(2) = x_dot;\r\n    kesi(3) = PosPhi;\r\n    kesi(4) = phi_dot;\r\n    kesi(5) = PosY;\r\n    kesi(6) = PosX;\r\n    kesi(7) = delta_f_rad;   \r\n    \r\n    % C_cf C_cr C_lf C_lrֱΪǰֵݺƫնȣв    \r\n    %----Estimate Lateral Cornering stiffness with RLS-------------------%  \r\n    alpha_f_Hat = (Beta + phi_dot*VehiclePara.Lf/x_dot - delta_f_rad);\r\n    [Fyf_hat, Ccf_1] = func_RLSEstimation_Ccf(alpha_f_Hat, Fyf);\r\n    C_cf = sum(Ccf_1);\r\n    if C_cf > -30000\r\n        C_cf = -110000;\r\n    end\r\n    alpha_r_Hat = (Beta - phi_dot*VehiclePara.Lr/x_dot);\r\n    [Fyr_hat, Ccr_1] = func_RLSEstimation_Ccr(alpha_r_Hat, Fyr);\r\n    C_cr = sum(Ccr_1);\r\n    if C_cr > -30000\r\n        C_cr = -92000;\r\n    end\r\n\r\n    %-----Estimate Longitudinal Cornering stiffness with RLS--------------%\r\n    Sf_Hat = Sf;\r\n    [Fxf_hat, Clf_1] = func_RLSEstimation_Clf(Sf_Hat, Fxf);\r\n    C_lf = sum(Clf_1);\r\n    \r\n    Sr_Hat = Sr;\r\n    [Fxr_hat, Clr_1] = func_RLSEstimation_Clf(Sr_Hat, Fxr);\r\n    C_lr = sum(Clr_1);\r\n    \r\n    %-----Use Constant tire stiffness  -------------------%  \r\n%     C_cf = -57218; \r\n%     C_cr = -67587; \r\n%     \r\n%     C_lf = 12650; \r\n%     C_lr = 99141;\r\n\r\n    %*******Step(3): ״̬ **********************************%    \r\n    % ҲҪľǿĻöѧģ\r\n    % þ복أͨԶѧſ˱Ⱦõ\r\n    [Ad, Bd] = func_Model_linearization_Jacobian(kesi, Sf, Sr, C_cf, ...\r\n                                             C_cr, C_lf, C_lr, ...\r\n                                             MPCParameters, VehiclePara);\r\n\r\n    A_cell = cell(2,2);\r\n    A_cell{1,1} = Ad;\r\n    A_cell{1,2} = Bd;\r\n    A_cell{2,1} = zeros(Nu,Nx);\r\n    A_cell{2,2} = eye(Nu);\r\n    A = cell2mat(A_cell);\r\n    \r\n    B_cell = cell(2,1);\r\n    B_cell{1,1} = Bd;\r\n    B_cell{2,1} = eye(Nu);\r\n    B = cell2mat(B_cell);\r\n\r\n    C = [0 0 1 0 0 0 0;\r\n         0 0 0 0 1 0 0];\r\n                                                                             \r\n\t%*******Step(4): ο켣 **********************************%    \r\n%     %¼ΪɢģԤһʱ״̬ \r\n%     [state_k1, Yita_ref] = func_Reftraj_doublelane(kesi, Sf, Sr, MPCParameters, ...\r\n%                                          VehiclePara, C_cf, C_cr, C_lf, C_lr);\r\n%     d_k = state_k1-Ad*kesi(1:6,1)-Bd*kesi(7,1);%falconeʽ2.11bd(k,t)\r\n%     d_piao_k = zeros(Nx+Nu, 1);%d_kʽ\r\n%     d_piao_k(1:6,1) = d_k;\r\n%     d_piao_k(7,1) = 0;\r\n    \r\n%      e_psi = kesi(3) - state_k1(3);\r\n%      if(e_psi > pi)\r\n%          e_psi = e_psi - 2*pi;\r\n%      end\r\n%      if(e_psi < -pi)\r\n%          e_psi = e_psi + 2*pi;\r\n%      end\r\n%      e_y   = kesi(5) - state_k1(5);\r\n     \r\n     \r\n    [WPIndex, Yita_ref, RefU] = func_RefTraj_LocalPlanning_DSL(MPCParameters,... \r\n                                            VehiclePara,... \r\n                                            WayPoints_IndexPre,... \r\n                                            Reftraj.DLS_path,... \r\n                                            kesi);\r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');    %\r\n    else      \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n    \r\n    d_piao_k = zeros(Nx+Nu, 1);%d_kʽ\r\n   \r\n    %****Step(5):  MPC formulation;********************% \r\n    %------Update prediction, ETA = PSI*kesi + GAMMA*PHI - Yref ----%\r\n    PSI_cell=cell(Np,1);\r\n    THETA_cell=cell(Np,Nc);\r\n    GAMMA_cell=cell(Np,Np);\r\n    PHI_cell=cell(Np,1);\r\n    for p=1:1:Np;\r\n        PHI_cell{p,1}=d_piao_k;%˵ҪʵʱµģΪ˼㣬һν\r\n        for q=1:1:Np;\r\n            if q<=p;\r\n                GAMMA_cell{p,q}=C*A^(p-q);\r\n            else \r\n                GAMMA_cell{p,q}=zeros(Ny,Nx+Nu);\r\n            end \r\n        end\r\n    end\r\n    for j=1:1:Np\r\n     PSI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PSI=cell2mat(PSI_cell);%size(PSI)=[Ny*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA=cell2mat(GAMMA_cell);%дGAMMA\r\n    PHI=cell2mat(PHI_cell);\r\n    \r\n    %------Update Q and R\r\n    temp = [CostWeights.Wephi, CostWeights.Wey];\r\n    Qq = diag(temp);\r\n    Q = kron(eye(Np), Qq);\r\n    R = kron(eye(Nc), CostWeights.WDdeltaf);\r\n    \r\n    %------Update H and f, J=0.5*DU'*H*DU + f'*DU\r\n    H = THETA'*Q*THETA + R;\r\n    H = 0.5*(H+H');\r\n    error_1 = PSI*kesi + GAMMA*PHI - Yita_ref; %ƫ\r\n    f = error_1'*Q*THETA;\r\n    g = f';\r\n    \r\n    %------Update Constaints and bounds Լ---%\r\n    %Լ\r\n    A_t = zeros(Nc,Nc);%falcone P181\r\n    for p = 1:1:Nc\r\n        for q = 1:1:Nc\r\n            if (p >= q)\r\n                A_t(p,q) = 1;\r\n            else \r\n                A_t(p,q) = 0;\r\n            end\r\n        end \r\n    end \r\n    A_I = kron(A_t,eye(Nu));%ڿ˻\r\n    \r\n    Ut=kron(ones(Nc,1), delta_f_rad);\r\n    umin = -Constraints.umax;%άƱĸͬ\r\n    umax = Constraints.umax; \r\n    Umin=kron(ones(Nc,1), umin);\r\n    Umax=kron(ones(Nc,1), umax);\r\n\r\n    A_cons_cell = { A_I; \r\n                    -A_I};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ  \r\n   \r\n    b_cons_cell = { Umax - Ut; \r\n                    -Umin + Ut};\r\n    b_cons = cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n  \r\n%     ycmax = Constraints.ycmax;\r\n%     ycmin = Constraints.ycmin;\r\n%     Ycmax = kron(ones(Np,1),ycmax);\r\n%     Ycmin = kron(ones(Np,1),ycmin);  %Լ   \r\n%    \r\n%     A_cons_cell = { A_I; \r\n%                     -A_I;\r\n%                     THETA;\r\n%                     -THETA};\r\n%     A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ  \r\n%    \r\n%     b_cons_cell = { Umax - Ut; \r\n%                     -Umin + Ut; \r\n%                     Ycmax - error_1; \r\n%                     -Ycmin + error_1};\r\n%     b_cons = cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n   \r\n    lb=kron(ones(Nc,1), -Constraints.dumax);\r\n    ub=kron(ones(Nc,1), Constraints.dumax);\r\n    \r\n    %****Step(9):  Call quadprog for MPC solver;********************% \r\n%     options = optimset('quadprog', 'Algorithm', 'active-set');\r\n    options = optimoptions('quadprog', 'Display','off', ...\r\n                            'Algorithm', 'active-set'); \r\n    DU0 = WarmStart;\r\n    [DU, FVAL, EXITFLAG] = quadprog(H, g, A_cons, b_cons, [], [], lb, ub, DU0, options); %\r\n%     [DU, FVAL, EXITFLAG] = quadprog(H, g, [], [], [], [], lb, ub, DU0, options); %\r\n    WarmStart = shiftHorizon(DU, Nu);     % Prepare restart, nominal close loop \r\n    \r\n    Steer_SW_deg = 18 * (delta_f_rad + DU(1))*180/pi;\r\n    \r\n    t_Elapsed = toc( t_Start ); %computation time\r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Steer_SW_deg; t_Elapsed; PosX; PosY; PosPhi; e_psi; e_y];\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================  \r\nfunction U0 = shiftHorizon(U, Nu) %shift control horizon\r\n    U0 = [U(Nu+1:size(U,1)); zeros(Nu,1)]; % shiftHorizonPrepare restart\r\n    \r\nfunction [WPIndex, Yita_ref, RefU] = func_RefTraj_LocalPlanning_DSL( MPCParameters, VehiclePara, WayPoints_Index, WayPoints_Collect, VehStateVector)\r\n    lf = VehiclePara.Lf;\r\n    lr = VehiclePara.Lr;\r\n    lfr = VehiclePara.L;\r\n    m   = VehiclePara.m;\r\n    Iz  = VehiclePara.Iz;   %IΪZתв  \r\n    Ts = MPCParameters.Ts;\r\n    Np  = MPCParameters.Np;\r\n    Nx  = MPCParameters.Nx;\r\n    Nu  = MPCParameters.Nu;\r\n    \r\n    PosPsi  = VehStateVector(3);  \r\n    PosY    = VehStateVector(5);\r\n    PosX    = VehStateVector(6);\r\n%*********** WaypointData2VehicleCoords ************************% \r\n    ds          = 0.1;%m\r\n    WPNum       = length(WayPoints_Collect(:,1));\r\n    \r\n    %--------ҵο·Ͼ복ĵ--------------------------%  \r\n    Dist_MIN    = 1000;\r\n    index_min   = 0;\r\n    for i=WayPoints_Index:1:WPNum \r\n        deltax  = WayPoints_Collect(i,1) - PosX;\r\n        deltay  = WayPoints_Collect(i,2) - PosY;\r\n        Dist    = sqrt(power(deltax,2) + power(deltay,2)); %·㵽ĵľ\r\n        if Dist < Dist_MIN\r\n            Dist_MIN = Dist; \r\n            index_min = i;\r\n        end\r\n    end\r\n    \r\n    if (index_min < 1) \r\n        WPIndex = -1; %ûҵ򡣡\r\n    else if ( index_min >= WPNum)\r\n            WPIndex = -2; %ûҵ򡣡\r\n        else\r\n            WPIndex = index_min;\r\n        end\r\n    end\r\n\r\n    Yita_ref_cell=cell(Np,1);\r\n    for p=1:1:Np\r\n%         X_ref = WayPoints_Collect(WPIndex+p, 1);\r\n        Y_ref = WayPoints_Collect(WPIndex+p, 2);\r\n        Heading_ref = WayPoints_Collect(WPIndex+p, 2);\r\n        Yita_ref_cell{p,1} = [Heading_ref; Y_ref];\r\n    end\r\n    Yita_ref=cell2mat(Yita_ref_cell);\r\n    \r\n    RefU = zeros(Np,1);\r\n    \r\n% end % End of func\r\n\r\nfunction [state_k1, Yita_ref] = func_Reftraj_doublelane(kesi, Sf, Sr, MPCParameters, VehiclePara, Ccf, Ccr, Clf, Clr)\r\n\r\n% ˫߹켣״\r\n    shape=2.4;%ƣڲο켣\r\n    dx1=25; dx2=21.95;%ûκʵ壬ֻǲ\r\n    dy1=4.05; dy2=5.7;%ûκʵ壬ֻǲ\r\n    Xs1=27.19; Xs2=56.46;%\r\n\r\n    lf = VehiclePara.Lf;\r\n    lr = VehiclePara.Lr;\r\n    lfr = VehiclePara.L;\r\n    m   = VehiclePara.m;\r\n    Iz  = VehiclePara.Iz;   %IΪZתв  \r\n    Ts = MPCParameters.Ts;\r\n    Np  = MPCParameters.Np;\r\n    Nx  = MPCParameters.Nx;\r\n    Nu  = MPCParameters.Nu;\r\n   \r\n    y_dot   = kesi(1);%u(1)==X(1)\r\n    x_dot   = kesi(2);%u(2)==X(2)\r\n    phi     = kesi(3); %u(3)==X(3)\r\n    phi_dot = kesi(4);\r\n    Y       = kesi(5);\r\n    X       = kesi(6);\r\n    delta_f = kesi(7);   \r\n\r\n    state_k1 = zeros(Nx, 1);\r\n    state_k1(1,1)=y_dot+Ts*(-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)+Ccr*(lr*phi_dot-y_dot)/x_dot)/m);\r\n    state_k1(2,1)=x_dot+Ts*(y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*lf)/x_dot))/m);\r\n    state_k1(3,1)=phi+Ts*phi_dot;\r\n    state_k1(4,1)=phi_dot+Ts*((2*lf*Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)-2*lr*Ccr*(lr*phi_dot-y_dot)/x_dot)/Iz);\r\n    state_k1(5,1)=Y+Ts*(x_dot*sin(phi)+y_dot*cos(phi));\r\n    state_k1(6,1)=X+Ts*(x_dot*cos(phi)-y_dot*sin(phi));\r\n    \r\n%     T_all = 20.0;    \r\n    Yita_ref_cell=cell(Np,1);\r\n    X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n    for p=1:1:Np\r\n        X_predict = X+X_DOT*p*Ts;%ȼδXλ\r\n        z1      = shape/dx1*(X_predict-Xs1) - shape/2;\r\n        z2      = shape/dx2*(X_predict-Xs2) - shape/2;\r\n        Y_ref   = dy1/2*(1+tanh(z1)) - dy2/2*(1+tanh(z2));\r\n        phi_ref = atan(dy1*(1/cosh(z1))^2*(1.2/dx1) - dy2*(1/cosh(z2))^2*(1.2/dx2));\r\n        Yita_ref_cell{p,1} = [phi_ref; Y_ref];\r\n    end\r\n    Yita_ref=cell2mat(Yita_ref_cell);\r\n% end % End of func\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/ReadMe",
    "content": "MPC for AFS use dynamic model\n"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/chapt5_MPC_Dynamics_AFS.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"chapt5_MPC_Dynamics_AFS\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.97\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"FinalMPCModelDynamicCarsimWithPlan_1218\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2469.0, 235.0, 988.0, 611.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[938.0, 434.0]\r\n\tZoomFactor\t\t[1.0]\r\n\tOffset\t\t\t[85.150000000000546, -66.883333333334008]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Thu Sep 19 22:28:53 2019\"\r\n  RTWModifiedTimeStamp\t  490832404\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:97>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"chapt5_MPC_Dynamics_AFS\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"chapt5_MPC_Dynamics_AFS\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"20\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      ModelBased\t      off\r\n      TickLabels\t      \"OneTimeTick\"\r\n      ZoomMode\t\t      \"on\"\r\n      Grid\t\t      \"on\"\r\n      TimeRange\t\t      \"auto\"\r\n      YMin\t\t      \"-5\"\r\n      YMax\t\t      \"5\"\r\n      SaveToWorkspace\t      off\r\n      SaveName\t\t      \"ScopeData\"\r\n      DataFormat\t      \"Array\"\r\n      LimitDataPoints\t      on\r\n      MaxDataPoints\t      \"5000\"\r\n      Decimation\t      \"1\"\r\n      SampleInput\t      off\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      InitialCondition\t      \"0\"\r\n      InputProcessing\t      \"Inherited\"\r\n      SampleTime\t      \"1\"\r\n      StateMustResolveToSignalObject off\r\n      CodeGenStateStorageClass \"Auto\"\r\n      HasFrameUpgradeWarning  on\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"chapt5_MPC_Dynamics_AFS\"\r\n    Location\t\t    [2469, 235, 3457, 846]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"100\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"90\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"47\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [485, 74, 585, 136]\r\n      ZOrder\t\t      -1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"chapt5_Dynamics_AFS.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"Controller\"\r\n      SID\t\t      \"1\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [340, 288, 500, 392]\r\n      ZOrder\t\t      -3\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"lightBlue\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"Main_MPC_Dynamics_AFS\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"89\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [280, 196, 285, 234]\r\n      ZOrder\t\t      3\r\n      BlockMirror\t      on\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[1, 6]\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux1\"\r\n      SID\t\t      \"54\"\r\n      Ports\t\t      [1, 6]\r\n      Position\t\t      [645, 154, 660, 251]\r\n      ZOrder\t\t      -4\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"6\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope2\"\r\n      SID\t\t      \"41\"\r\n      Ports\t\t      [6]\r\n      Position\t\t      [880, 162, 945, 243]\r\n      ZOrder\t\t      -9\r\n      Floating\t\t      off\r\n      Location\t\t      [6, 48, 1286, 759]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"6\"\r\n      ZoomMode\t\t      \"xonly\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n\taxes2\t\t\t\"%<SignalLabel>\"\r\n\taxes3\t\t\t\"%<SignalLabel>\"\r\n\taxes4\t\t\t\"%<SignalLabel>\"\r\n\taxes5\t\t\t\"%<SignalLabel>\"\r\n\taxes6\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      List {\r\n\tListType\t\tScopeGraphics\r\n\tFigureColor\t\t\"[0.5 0.5 0.5]\"\r\n\tAxesColor\t\t\"[0 0 0]\"\r\n\tAxesTickColor\t\t\"[1 1 1]\"\r\n\tLineColors\t\t\"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]\"\r\n\tLineStyles\t\t\"-|-|-|-|-|-\"\r\n\tLineWidths\t\t\"[0.5 0.5 0.5 0.5 0.5 0.5]\"\r\n\tMarkerStyles\t\t\"none|none|none|none|none|none\"\r\n      }\r\n      ShowLegends\t      off\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-1~35~-10~-20~-4~0\"\r\n      YMax\t\t      \"1~36.5~5~20~2~200\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"90\"\r\n      Position\t\t      [165, 210, 230, 240]\r\n      ZOrder\t\t      4\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"42\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [785, 77, 950, 133]\r\n      ZOrder\t\t      -11\r\n      VariableName\t      \"CarSim_Exports\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"52\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [165, 325, 225, 355]\r\n      ZOrder\t\t      -12\r\n      BlockMirror\t      on\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      Name\t\t      \"Unit Delay\"\r\n      SID\t\t      \"57\"\r\n      Position\t\t      [540, 323, 575, 357]\r\n      ZOrder\t\t      -13\r\n      BlockMirror\t      on\r\n      InputProcessing\t      \"Elements as channels (sample based)\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      1\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [15, 0]\r\n      Branch {\r\n\tZOrder\t\t\t64\r\n\tPoints\t\t\t[0, 100]\r\n\tBranch {\r\n\t  ZOrder\t\t  107\r\n\t  Points\t\t  [0, 135]\r\n\t  DstBlock\t\t  \"Unit Delay\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  ZOrder\t\t  62\r\n\t  DstBlock\t\t  \"Demux1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t2\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      21\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      22\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      ZOrder\t\t      23\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      3\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      3\r\n    }\r\n    Line {\r\n      ZOrder\t\t      24\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      4\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      4\r\n    }\r\n    Line {\r\n      ZOrder\t\t      25\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      5\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      5\r\n    }\r\n    Line {\r\n      ZOrder\t\t      28\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      6\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      6\r\n    }\r\n    Line {\r\n      ZOrder\t\t      32\r\n      SrcBlock\t\t      \"Unit Delay\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Controller\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      75\r\n      SrcBlock\t\t      \"Controller\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-27, 0]\r\n      Branch {\r\n\tZOrder\t\t\t81\r\n\tPoints\t\t\t[0, -125]\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t80\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      83\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-28, 0; 0, -100]\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      84\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"79\"\r\n      Name\t\t      \"y_dot\"\r\n      Position\t\t      [734, 155, 760, 170]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -4\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"80\"\r\n      Name\t\t      \"x_dot\"\r\n      Position\t\t      [736, 173, 761, 188]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -5\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"81\"\r\n      Name\t\t      \"phi\"\r\n      Position\t\t      [739, 189, 753, 204]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -6\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"82\"\r\n      Name\t\t      \"phi_dot\"\r\n      Position\t\t      [739, 204, 773, 219]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -7\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"83\"\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [735, 222, 743, 237]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -8\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"84\"\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [736, 236, 744, 251]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -9\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/chapter5_1_1.m",
    "content": "%% ˳ܣݼ򻯶ѧģ(СǶȼ)ſ˱Ⱦ\r\n% 汾V1.0дʱ2013.12.11\r\n% ſ˱Ⱦ복вصģ仯ˣſ˱ȾҲӦ仯\r\n% ֻһֵбҪ\r\nclc\r\nclear all;\r\n%% Ϊ\r\n% \r\nsyms x_dot y_dot phi phi_dot Y X;%״̬\r\nsyms delta_f  %ǰƫ,\r\n%syms sf sr;%ֱΪǰֵĻ,Ҫṩ\r\nSf=0.2; Sr=0.2;\r\n%syms a b;%ǰ־복ĵľ룬в\r\na=1.232;b=1.468;\r\n%syms C_cf C_cr C_lf C_lr;%ֱΪǰֵݺƫնȣв\r\nCcf=66900;Ccr=62700;Clf=66900;Clr=62700;\r\n%syms m g I;%mΪgΪٶȣIΪZתв\r\nm=1723;g=9.8;I=4175;\r\n\r\n% ѧģ\r\ndy_dot=-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+a*phi_dot)/x_dot)+Ccr*(b*phi_dot-y_dot)/x_dot)/m;\r\ndx_dot=y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*a)/x_dot))/m;\r\n%dphi_dot=dphi_dot;\r\ndphi_dot=(2*a*Ccf*(delta_f-(y_dot+a*phi_dot)/x_dot)-2*b*Ccr*(b*phi_dot-y_dot)/x_dot)/I;\r\nY_dot=x_dot*sin(phi)+y_dot*cos(phi);\r\nX_dot=x_dot*cos(phi)-y_dot*sin(phi);\r\n\r\n% ſ˱Ⱦ\r\nf=[dy_dot;dx_dot;phi_dot;dphi_dot;Y_dot;X_dot];%ѧģ\r\nkesi=[y_dot,x_dot,phi,phi_dot,Y,X];%ϵͳ״̬\r\nv=delta_f;\r\nR=jacobian(f,kesi);%A(t)-\r\nR2=jacobian(f,v);%B(t)-\r\n\r\n% ƾ(תΪɢ󣬲ý㷨  A=I+T*A(t),B=T*B(t))\r\nI=eye(6);\r\nsyms T;\r\nA=I+T*R;\r\nB=T*R2;\r\n% A1=vpa(A,3);\r\n% B1=vpa(B,3);\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/chapter5_2_2.m",
    "content": "function [sys,x0,str,ts] = chapter5_2_2(t,x,u,flag)\r\n% óܣLTV MPC ͳ򻯶ѧģͣСǶȼ裩ƿΪSimulinkĿ\r\n% 汾 V1.0MATLAB汾R2011a,Sı׼ʽ\r\n% д 2013.12.11\r\n% һθд 2013.12.16\r\n% ״̬=[y_dot,x_dot,phi,phi_dot,Y,X]Ϊǰƫdelta_f\r\n\r\n\r\nswitch flag,\r\n case 0\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n%  case 4\r\n%   sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time \r\n\r\n case {1,4,9} % Unused flags\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0;\r\nsizes.NumDiscStates  = 6;\r\nsizes.NumOutputs     = 6;\r\nsizes.NumInputs      = 10;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 = zeros(sizes.NumDiscStates, 1);\r\n\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % sample time: [period, offset]\r\n\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x;\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    global a b; \r\n    %global kesi;\r\n    tic\r\n    Nx=6;%״̬ĸ\r\n    Nu=1;%ĸ\r\n    Ny=2;%ĸ\r\n    Np =20;%Ԥⲽ\r\n    Nc=5;%Ʋ\r\n    Row=1000;%ɳȨ\r\n    fprintf('Update start, t=%6.3f\\n',t)\r\n   \r\n    %ӿת,x_dotһǳСǷַֹĸΪ\r\n    y_dot=u(1)/3.6; %CarSimkm/hתΪm/s\r\n    x_dot=u(2)/3.6;%CarSimkm/hתΪm/s\r\n    if (0 == x_dot)\r\n        x_dot = 0.001;\r\n    end\r\n    \r\n    phi=u(3)*pi/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot=u(4)*3.141592654/180;% deg/s-->rad/s\r\n    Y=u(5);%λΪm\r\n    X=u(6);%λΪ\r\n    slip_ratio_L1=u(7);\r\n    slip_ratio_R1=u(8);\r\n    steer_L1=u(9);\r\n    steer_R1=u(10);\r\n    steer_deg = 0.5*(steer_L1 + steer_R1);\r\n    steer_rad = steer_deg*pi/180;\r\n    \r\n%% \r\n%syms sf sr;%ֱΪǰֵĻ,Ҫṩ\r\n    Sf=0.2; Sr=0.2;\r\n%syms lf lr;%ǰ־복ĵľ룬в\r\n    lf = 1.11; \r\n    lr = 1.67;\r\n    lfr = 2.78;\r\n%syms C_cf C_cr C_lf C_lr;%ֱΪǰֵݺƫնȣв\r\n    Ccf=66900; Ccr=62700; Clf=66900; Clr=62700;\r\n%syms m g I;%mΪgΪٶȣIΪZתв\r\n    m = 1600;%ms = 1370;\r\n    g = 9.8;\r\n    I = 2315.3; \r\n    \r\n   \r\n\r\n%% ο켣\r\n    shape=2.4;%ƣڲο켣\r\n    dx1=25;dx2=21.95;%ûκʵ壬ֻǲ\r\n    dy1=4.05;dy2=5.7;%ûκʵ壬ֻǲ\r\n    Xs1=27.19;Xs2=56.46;%\r\n    X_predict=zeros(Np,1);%ڱԤʱڵλϢǼ켣Ļ\r\n    phi_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    Y_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    \r\n    %  ¼kesi,״̬һ   \r\n    kesi=zeros(Nx+Nu,1);\r\n    kesi(1)=y_dot;%u(1)==X(1)\r\n    kesi(2)=x_dot;%u(2)==X(2)\r\n    kesi(3)=phi; %u(3)==X(3)\r\n    kesi(4)=phi_dot;\r\n    kesi(5)=Y;\r\n    kesi(6)=X;\r\n    \r\n    kesi(7) = steer_rad;\r\n    delta_f = steer_rad;\r\n    fprintf('Update start, u(1)=%4.2f\\n',steer_rad)\r\n\r\n    T=0.05;%沽\r\n    T_all=20;%ܵķʱ䣬ҪǷֹ켣Խ\r\n     \r\n    %Ȩؾ \r\n    Q_cell=cell(Np,Np);\r\n    for i=1:1:Np;\r\n        for j=1:1:Np;\r\n            if i==j\r\n                %Q_cell{i,j}=[200 0;0 100;];\r\n                Q_cell{i,j}=[2000 0;0 10000;];\r\n            else \r\n                Q_cell{i,j}=zeros(Ny,Ny);               \r\n            end\r\n        end \r\n    end \r\n    Q = cell2mat(Q_cell);\r\n    %R=5*10^4*eye(Nu*Nc);\r\n    R=5*10^5*eye(Nu*Nc);\r\n    %ҲҪľǿĻöѧģͣþ복أͨԶѧſ˱Ⱦõ\r\n    a=[                 1 - (259200*T)/(1723*x_dot),                                                         -T*(phi_dot + (2*((460218*phi_dot)/5 - 62700*y_dot))/(1723*x_dot^2) - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2)),                                    0,                     -T*(x_dot - 96228/(8615*x_dot)), 0, 0;\r\n        T*(phi_dot - (133800*delta_f)/(1723*x_dot)),                                                                                                                  (133800*T*delta_f*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2) + 1,                                    0,           T*(y_dot - (824208*delta_f)/(8615*x_dot)), 0, 0;\r\n                                                  0,                                                                                                                                                                                  0,                                    1,                                                   T, 0, 0;\r\n            (33063689036759*T)/(7172595384320*x_dot), T*(((2321344006605451863*phi_dot)/8589934592000 - (6325188028897689*y_dot)/34359738368)/(4175*x_dot^2) + (5663914248162509*((154*phi_dot)/125 + y_dot))/(143451907686400*x_dot^2)),                                   0, 1 - (813165919007900927*T)/(7172595384320000*x_dot), 0, 0;\r\n                                          T*cos(phi),                                                                                                                                                                         T*sin(phi),  T*(x_dot*cos(phi) - y_dot*sin(phi)),                                                   0, 1, 0;\r\n                                         -T*sin(phi),                                                                                                                                                                         T*cos(phi), -T*(y_dot*cos(phi) + x_dot*sin(phi)),                                                   0, 0, 1];\r\n   \r\n    b=[                                                               133800*T/1723;\r\n       T*((267600*delta_f)/1723 - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot));\r\n                                                                                 0;\r\n                                                5663914248162509*T/143451907686400;\r\n                                                                                 0;\r\n                                                                                 0];  \r\n    d_k=zeros(Nx,1);%ƫ\r\n    state_k1=zeros(Nx,1);%Ԥһʱ״̬ڼƫ\r\n    %¼ΪɢģԤһʱ״̬\r\n    %ע⣬Ϊǰıʽa,ba,bͻǰıʽΪlflr\r\n    state_k1(1,1)=y_dot+T*(-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)+Ccr*(lr*phi_dot-y_dot)/x_dot)/m);\r\n    state_k1(2,1)=x_dot+T*(y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*lf)/x_dot))/m);\r\n    state_k1(3,1)=phi+T*phi_dot;\r\n    state_k1(4,1)=phi_dot+T*((2*lf*Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)-2*lr*Ccr*(lr*phi_dot-y_dot)/x_dot)/I);\r\n    state_k1(5,1)=Y+T*(x_dot*sin(phi)+y_dot*cos(phi));\r\n    state_k1(6,1)=X+T*(x_dot*cos(phi)-y_dot*sin(phi));\r\n    d_k=state_k1-a*kesi(1:6,1)-b*kesi(7,1);%falconeʽ2.11bd(k,t)\r\n  \r\n    d_piao_k=zeros(Nx+Nu,1);%d_kʽοfalcone(B,4c)\r\n    d_piao_k(1:6,1)=d_k;\r\n    d_piao_k(7,1)=0;\r\n    \r\n    A_cell=cell(2,2);\r\n    B_cell=cell(2,1);\r\n    A_cell{1,1}=a;\r\n    A_cell{1,2}=b;\r\n    A_cell{2,1}=zeros(Nu,Nx);\r\n    A_cell{2,2}=eye(Nu);\r\n\r\n    B_cell{1,1}=b;\r\n    B_cell{2,1}=eye(Nu);\r\n    %A=zeros(Nu+Nx,Nu+Nx);\r\n    A=cell2mat(A_cell);\r\n    B=cell2mat(B_cell);\r\n   % C=[0 0 1 0 0 0 0;0 0 0 1 0 0 0;0 0 0 0 1 0 0;];%Ǻܹ\r\n    C = [0 0 1 0 0 0 0;\r\n         0 0 0 0 1 0 0;];\r\n   \r\n    PSI_cell=cell(Np,1);\r\n    THETA_cell=cell(Np,Nc);\r\n    GAMMA_cell=cell(Np,Np);\r\n    PHI_cell=cell(Np,1);\r\n    for p=1:1:Np;\r\n        PHI_cell{p,1}=d_piao_k;%˵ҪʵʱµģΪ˼㣬һν\r\n        for q=1:1:Np;\r\n            if q<=p;\r\n                GAMMA_cell{p,q}=C*A^(p-q);\r\n            else \r\n                GAMMA_cell{p,q}=zeros(Ny,Nx+Nu);\r\n            end \r\n        end\r\n    end\r\n    for j=1:1:Np\r\n     PSI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PSI=cell2mat(PSI_cell);%size(PSI)=[Ny*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA=cell2mat(GAMMA_cell);%дGAMMA\r\n    PHI=cell2mat(PHI_cell);\r\n    \r\n   \r\n    H_cell=cell(2,2);\r\n    H_cell{1,1}=THETA'*Q*THETA + R;\r\n    H_cell{1,2}=zeros(Nu*Nc,1);\r\n    H_cell{2,1}=zeros(1,Nu*Nc);\r\n    H_cell{2,2}=Row;\r\n    H=cell2mat(H_cell);\r\n   \r\n    error_1=zeros(Ny*Np,1);\r\n    Yita_ref_cell=cell(Np,1);\r\n    for p=1:1:Np\r\n        if t+p*T>T_all\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(Np,1)=X+X_DOT*Np*T;\r\n            %X_predict(Np,1)=X+X_dot*Np*t;\r\n            z1=shape/dx1*(X_predict(Np,1)-Xs1)-shape/2;\r\n            z2=shape/dx2*(X_predict(Np,1)-Xs2)-shape/2;\r\n            Y_ref(p,1)=dy1/2*(1+tanh(z1))-dy2/2*(1+tanh(z2));\r\n            phi_ref(p,1)=atan(dy1*(1/cosh(z1))^2*(1.2/dx1)-dy2*(1/cosh(z2))^2*(1.2/dx2));\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n            \r\n        else\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(p,1)=X+X_DOT*p*T;%ȼδXλãX(t)=X+X_dot*t\r\n            z1=shape/dx1*(X_predict(p,1)-Xs1)-shape/2;\r\n            z2=shape/dx2*(X_predict(p,1)-Xs2)-shape/2;\r\n            Y_ref(p,1)=dy1/2*(1+tanh(z1))-dy2/2*(1+tanh(z2));\r\n            phi_ref(p,1)=atan(dy1*(1/cosh(z1))^2*(1.2/dx1)-dy2*(1/cosh(z2))^2*(1.2/dx2));\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n\r\n        end\r\n    end\r\n    Yita_ref=cell2mat(Yita_ref_cell);\r\n    error_1 = PSI*kesi + GAMMA*PHI - Yita_ref; %ƫ\r\n    f_cell=cell(1,2);\r\n    f_cell{1,1}=error_1'*Q*THETA;\r\n    f_cell{1,2}=0;\r\n    f=cell2mat(f_cell)';\r\n    \r\n %% ΪԼ\r\n %Լ\r\n    A_t=zeros(Nc,Nc);%falcone P181\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if q<=p \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ڿ˻\r\n    Ut=kron(ones(Nc,1), steer_rad);\r\n    umin = -0.1744;%άƱĸͬ\r\n    umax = 0.1744; % 0.1744rad = 10deg\r\n\r\n    Umin=kron(ones(Nc,1),umin);\r\n    Umax=kron(ones(Nc,1),umax);\r\n     \r\n    %Լ\r\n    ycmax=[0.21;5];\r\n    ycmin=[-0.3;-3];\r\n    Ycmax=kron(ones(Np,1),ycmax);\r\n    Ycmin=kron(ones(Np,1),ycmin);\r\n    \r\n    %ϿԼԼ\r\n    A_cons_cell={A_I zeros(Nu*Nc,1); -A_I zeros(Nu*Nc,1);THETA zeros(Ny*Np,1);-THETA zeros(Ny*Np,1)};\r\n    b_cons_cell={Umax-Ut; -Umin+Ut; Ycmax-PSI*kesi-GAMMA*PHI; -Ycmin+PSI*kesi+GAMMA*PHI};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ\r\n    b_cons=cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n    \r\n    %״̬Լ\r\n    M=10; \r\n    delta_umin=-0.0148; % 0.0148rad = 0.8deg\r\n    delta_umax=0.0148;  \r\n    \r\n    delta_Umin=kron(ones(Nc,1),delta_umin);\r\n    delta_Umax=kron(ones(Nc,1),delta_umax);\r\n    lb=[delta_Umin;0];%̣ⷽ״̬½磬ʱڿɳ\r\n    ub=[delta_Umax;M];%̣ⷽ״̬Ͻ磬ʱڿɳ\r\n    \r\n    %% ʼ\r\n       options = optimset('Algorithm','active-set');\r\n       x_start=zeros(Nc+1,1);%һʼ\r\n      [DU,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub,x_start,options);\r\n      fprintf('exitflag=%d\\n',exitflag);\r\n      fprintf('H=%4.2f\\n',H(1,1));\r\n      fprintf('f=%4.2f\\n',f(1,1));\r\n    %% \r\n%     u_piao=DU(1);%õ\r\n%     U(1)=kesi(7,1)+u_piao;%ǰʱ̵ĿΪһʱ̿+\r\n   %U(2)=Yita_ref(2);%dphi_ref\r\n%     sys= U;\r\n    steer_des = steer_rad + DU(1);\r\n    steer_des_deg = steer_des*180/pi;\r\n    sys= [steer_des_deg; steer_des_deg; 0; 0;Y; X];\r\n    toc\r\n% End of mdlOutputs.\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/func_Model_linearization_Jacobian.m",
    "content": "function    [Ad, Bd] = func_Model_linearization_Jacobian(kesi, Sf, Sr, Ccf, Ccr, Clf, Clr, MPCParameters, VehiclePara)\r\n%***************************************************************%\r\n% ݼ򻯶ѧģ(СǶȼ)ſ˱Ⱦ\r\n% ſ˱Ⱦ복в\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My homepage: https://sites.google.com/site/kailiumiracle/  \r\n%***************************************************************%\r\n    %---------- -----------%\r\n    syms y_dot x_dot phi phi_dot Y X;%״̬\r\n    syms delta_f  %ǰƫ,\r\n    \r\n    Ts = MPCParameters.Ts;\r\n    a  = VehiclePara.Lf;\r\n    b  = VehiclePara.Lr;\r\n    m  = VehiclePara.m;\r\n    Iz = VehiclePara.Iz;\r\n\r\n    %----ѧģ-------------%\r\n    dy_dot = -x_dot*phi_dot + 2*(Ccf*((y_dot+a*phi_dot)/x_dot - delta_f) + Ccr*(y_dot - b*phi_dot)/x_dot)/m;\r\n    dx_dot = y_dot*phi_dot + 2*(Clf*Sf + Clr*Sr + Ccf*((y_dot + phi_dot*a)/x_dot - delta_f)*delta_f)/m;\r\n    dphi_dot = (2*a*Ccf*((y_dot+a*phi_dot)/x_dot - delta_f) - 2*b*Ccr*(y_dot - b*phi_dot)/x_dot)/Iz;\r\n    Y_dot = x_dot*sin(phi) + y_dot*cos(phi);\r\n    X_dot = x_dot*cos(phi) - y_dot*sin(phi);\r\n\r\n    %----ſ˱Ⱦ-------------%\r\n    Dynamics_func = [dy_dot; dx_dot; phi_dot; dphi_dot; Y_dot; X_dot];%ѧģ\r\n    state_vector = [y_dot,x_dot,phi,phi_dot,Y,X];%ϵͳ״̬\r\n    control_input = delta_f;\r\n    A_t = jacobian(Dynamics_func, state_vector);  %A(t)-\r\n    B_t = jacobian(Dynamics_func, control_input); %B(t)-\r\n\r\n    %----תΪɢ-------------%\r\n    % Forward Euler Method㷨  A = I+Ts*A(t),B = Ts*B(t)\r\n    I_6 = eye(6);\r\n    Ad_temp = I_6 + Ts * A_t;\r\n    Bd_temp = Ts * B_t;\r\n\r\n    %----ȡ״̬-------------%\r\n    y_dot   = kesi(1);\r\n    x_dot   = kesi(2);\r\n    phi     = kesi(3);\r\n    phi_dot = kesi(4);\r\n    Y       = kesi(5);\r\n    X       = kesi(6);\r\n    delta_f = kesi(7);\r\n    \r\n    Ad = eval(Ad_temp);\r\n    Bd = eval(Bd_temp);\r\n    \r\nend % end of func."
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/func_RLSEstimation_Ccf.m",
    "content": "function [y, Bout] = func_RLSEstimation_Ccf(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_cf, Num_cf, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_cf: is also called the \"forgetting\" exponential weight factor\r\n%     Num_cf is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_cf F_cf B_cf lambda_cf  Num_cf  Rinv_cf  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_cf = d;\r\n%         delta = delta_n;\r\n        Num_cf = FIR_Num;\r\n        Rinv_cf = delta_n*eye(Num_cf);\r\n        F_cf = zeros(Num_cf,1);\r\n        Y_cf = zeros(1, Num_cf);\r\n        B_cf =  -92000; %zeros(1,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_cf:-1:2\r\n            F_cf(J) = F_cf(J-1);\r\n            Y_cf(J) = Y_cf(J-1);\r\n        end;\r\n        F_cf(1) = f;\r\n        Y_cf(1) = d;\r\n        % Perform the convolution\r\n        y= F_cf'*B_cf;\r\n        error=Y_cf-y;% 1*nd\r\n        % Kalman gains\r\n        K = Rinv_cf*F_cf/(lambda_cf + F_cf'*Rinv_cf*F_cf);\r\n        % Update Rinv_cf\r\n        Rinvn = (Rinv_cf - K*F_cf'*Rinv_cf)/lambda_cf;\r\n        % Update the filter coefficients\r\n        B_cf = B_cf + K* error;\r\n        Rinv_cf = Rinvn;\r\n\r\n        Bout = B_cf;     \r\n%         R_f_out = Rinv_cf;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/func_RLSEstimation_Ccr.m",
    "content": "function [y, Bout] = func_RLSEstimation_Ccr(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_cr, Num_cr, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_cr: is also called the \"forgetting\" exponential weight factor\r\n%     Num_cr is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_cr F_cr B_cr lambda_cr  Num_cr  Rinv_cr  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_cr = d;\r\n%         delta = delta_n;\r\n        Num_cr = FIR_Num;\r\n        Rinv_cr = delta_n*eye(Num_cr);\r\n        F_cr = zeros(Num_cr,1);\r\n        Y_cr = zeros(1, Num_cr);\r\n        B_cr = -92000; %zeros(Num_cr,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_cr:-1:2\r\n            F_cr(J) = F_cr(J-1);\r\n            Y_cr(J) = Y_cr(J-1);\r\n        end;\r\n        F_cr(1) = f;\r\n        Y_cr(1) = d;\r\n        % Perform the convolution\r\n        y= F_cr'*B_cr;\r\n        error=Y_cr-y;\r\n        % Kalman gains\r\n        K = Rinv_cr*F_cr/(lambda_cr + F_cr'*Rinv_cr*F_cr);\r\n        % Update Rinv_cr\r\n        Rinvn = (Rinv_cr - K*F_cr'*Rinv_cr)/lambda_cr;\r\n        % Update the filter coefficients\r\n        B_cr = B_cr + K * error;\r\n        Rinv_cr = Rinvn;\r\n        \r\n        Bout = B_cr;\r\n%         R_r_out = Rinv_cr;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/func_RLSEstimation_Clf.m",
    "content": "function [y, Bout] = func_RLSEstimation_Clf(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_lf, Num_lf, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_lf: is also called the \"forgetting\" exponential weight factor\r\n%     Num_lf is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_lf F_lf B_lf lambda_lf  Num_lf  Rinv_lf  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_lf = d;\r\n        Num_lf = FIR_Num;\r\n        Rinv_lf = delta_n*eye(Num_lf);\r\n        F_lf = zeros(Num_lf,1);\r\n        Y_lf = zeros(1, Num_lf);\r\n        B_lf =  -92000; %zeros(1,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_lf:-1:2\r\n            F_lf(J) = F_lf(J-1);\r\n            Y_lf(J) = Y_lf(J-1);\r\n        end;\r\n        F_lf(1) = f;\r\n        Y_lf(1) = d;\r\n        % Perform the convolution\r\n        y= F_lf'*B_lf;\r\n        error=Y_lf-y;% 1*nd\r\n        % Kalman gains\r\n        K = Rinv_lf*F_lf/(lambda_lf + F_lf'*Rinv_lf*F_lf);\r\n        % Update Rinv_lf\r\n        Rinvn = (Rinv_lf - K*F_lf'*Rinv_lf)/lambda_lf;\r\n        % Update the filter coefficients\r\n        B_lf = B_lf + K* error;\r\n        Rinv_lf = Rinvn;\r\n\r\n        Bout = B_lf;     \r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_DynamicModel_AFS/func_RLSEstimation_Clr.m",
    "content": "function [y, Bout, R_r_out] = func_RLSEstimation_Clr(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_lr, Num_lr, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_lr: is also called the \"forgetting\" exponential weight factor\r\n%     Num_lr is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_lr F_lr B_lr lambda_lr  Num_lr  Rinv_lr  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_lr = d;\r\n%         delta = delta_n;\r\n        Num_lr = FIR_Num;\r\n        Rinv_lr = delta_n*eye(Num_lr);\r\n        F_lr = zeros(Num_lr,1);\r\n        Y_lr = zeros(1, Num_lr);\r\n        B_lr = -92000; %zeros(Num_lr,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_lr:-1:2\r\n            F_lr(J) = F_lr(J-1);\r\n            Y_lr(J) = Y_lr(J-1);\r\n        end;\r\n        F_lr(1) = f;\r\n        Y_lr(1) = d;\r\n        % Perform the convolution\r\n        y= F_lr'*B_lr;\r\n        error=Y_lr-y;\r\n        % Kalman gains\r\n        K = Rinv_lr*F_lr/(lambda_lr + F_lr'*Rinv_lr*F_lr);\r\n        % Update Rinv_lr\r\n        Rinvn = (Rinv_lr - K*F_lr'*Rinv_lr)/lambda_lr;\r\n        % Update the filter coefficients\r\n        B_lr = B_lr + K * error;\r\n        Rinv_lr = Rinvn;\r\n        \r\n        Bout = B_lr;\r\n        R_r_out = Rinv_lr;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/Main_TireStiffness_Estimation.m",
    "content": "function [sys,x0,str,ts] =Main_TireStiffness_Estimation(t,x,u,flag)\r\n%***************************************************************%\r\n% Simulation for estimation of cornering stiffness using RLS method\r\n% Assume: lf, lr are known; \r\n% Assume: Vy, Vel, steering_angle and side-slip angle are measurable\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵ\r\nsizes.NumOutputs     = 12; %Sеĸ\r\nsizes.NumInputs      = 21; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). \r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05s \r\n\r\n%------------Global parameters and initialization--------------------%\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % Ignore the first few inputs from CarSim\r\n    % vehicle parameters initialization\r\n    global VehicleParams; % for SUV\r\n    VehicleParams.Lf  = 1.12;  % 1.05\r\n    VehicleParams.Lr  = 1.48;  % 1.55\r\n\r\n    \r\n    % RLS for longitudinal stiffness initialization\r\n    [y, Ccf] = func_RLSEstimation_Clf('initial', 0.95, 1, 10);\r\n    [y, Ccr] = func_RLSEstimation_Clr('initial', 0.95, 1, 10);\r\n\r\n    % RLS for cornering stiffness initialization\r\n    [y, Clf] = func_RLSEstimation_Ccf('initial', 0.95, 1, 10);\r\n    [y, Clr] = func_RLSEstimation_Ccr('initial', 0.95, 1, 10);\r\n    \r\n%     global RLS_params; \r\n%     RLS_params.nDataTuple    = 10;\r\n%     RLS_params.nCoefficients = 1;\r\n%     RLS_params.initialCoefficients = -90000* ones(RLS_params.nCoefficients,1);    \r\n%     RLS_params.delta         = 10;\r\n%     RLS_params.lambda = 0.95;\r\n%     [y, e, c] = func_RLS_Alt_New('initial', 0, params);   \r\n% \r\n%     global pre_regressor;\r\n%     nc = 1;\r\n%     nd = 10;\r\n%     pre_regressor.input = zeros(nc,nd);\r\n%     pre_regressor.d     = zeros(nd,1);\r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  Ŀǰûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nglobal InitialGapflag;\r\nglobal VehicleParams;\r\n\r\nCcf_Hat        = 0;\r\nCcr_Hat        = 0;\r\nClf_Hat        = 0;\r\nClr_Hat        = 0;\r\n\r\nFyf_Hat_err    = 0;\r\nFyr_Hat_err    = 0;\r\nFxf_Hat_err    = 0;\r\nFxr_Hat_err    = 0;\r\n\r\nalpha_f_Hat    = 0;\r\nalpha_r_Hat    = 0; \r\nalpha_f_Direct = 0;\r\nalpha_r_Direct = 0;\r\n\r\nif InitialGapflag < 3 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %-----Update State Estimation of measured Vehicle Configuration------%\r\n    [Carsim_export] = func_CarsimData_Parse(u);   \r\n    Vx            = Carsim_export.x_dot; \r\n    Vy            = Carsim_export.y_dot; \r\n    yawrate       = Carsim_export.phi_dot; % rad/s\r\n    fwa           = Carsim_export.fwa;\r\n    \r\n    Fyf_Direct    = Carsim_export.Fyf;\r\n    Fyr_Direct    = Carsim_export.Fyr;   \r\n    alpha_f_Direct = Carsim_export.alphaf;\r\n    alpha_r_Direct = Carsim_export.alphar;\r\n    \r\n    kappa_f_Direct = Carsim_export.kappa_f;\r\n    kappa_r_Direct = Carsim_export.kappa_r;\r\n    Fxf_Direct     = Carsim_export.Fxf;\r\n    Fxr_Direct     = Carsim_export.Fxr;\r\n    \r\n    %-----1. Estimate Cornering stiffness use estimated sideslip angle----%  \r\n    %for front tire\r\n    alpha_f_Hat = (Vy + yawrate*VehicleParams.Lf)/Vx - fwa;\r\n    [Fyf_hat, Ccf_Hat] = func_RLSEstimation_Ccf(alpha_f_Hat, Fyf_Direct);\r\n    Fyf_Hat_err = Fyf_hat - Fyf_Direct;\r\n    %for rear tire \r\n    alpha_r_Hat = (Vy - yawrate*VehicleParams.Lr)/Vx;\r\n    [Fyr_hat, Ccr_Hat] = func_RLSEstimation_Ccr(alpha_r_Hat, Fyr_Direct);\r\n    Fyr_Hat_err = Fyr_hat - Fyr_Direct;\r\n    \r\n    %-----2. Estimate longitudinal stiffness use direct tire slip ratio---%  \r\n    %for front tire\r\n    [Fxf_hat, Clf_Hat] = func_RLSEstimation_Clf(kappa_f_Direct, Fxf_Direct);\r\n    Fxf_Hat_err = Fxf_hat - Fxf_Direct;\r\n    %for rear tire \r\n    [Fxr_hat, Clr_Hat] = func_RLSEstimation_Clr(kappa_r_Direct, Fxr_Direct);\r\n    Fxr_Hat_err = Fxr_hat - Fxr_Direct;\r\n\r\nend % end of if Initialflag < 2 % \r\n    \r\nsys = [Ccf_Hat; Ccr_Hat; Fyf_Hat_err; Fyr_Hat_err; Clf_Hat; Clr_Hat; Fxf_Hat_err; Fxr_Hat_err; alpha_f_Hat; alpha_r_Hat; alpha_f_Direct; alpha_r_Direct]; % \r\n\r\n% sys = [t_Elapsed; Ax; Ay_G_SM; fwa; Beta; Vel; Vy; yawrate; Roll; Rollrate; vx_hat; vy_hat; yawrate_hat; roll_hat; rollrate_hat; CafHat; CarHat; C_alpha_f_hat_ay; C_alpha_r_hat_ay]; % \r\n    \r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [Sparsed_Carsim_Data] = func_CarsimData_Parse(CarsimData)\r\n%***************************************************************%\r\n% Parse data exported from CarSim, ˳CarSimһ\r\n%***************************************************************%       \r\n    Sparsed_Carsim_Data.x_dot   = CarsimData(1)/3.6; %Unit:km/h-->m/s1λС  \r\n    Sparsed_Carsim_Data.y_dot   = CarsimData(2)/3.6; %Unit:km/h-->m/s1λС   \r\n    Sparsed_Carsim_Data.phi_dot = (round(10*CarsimData(3))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    Sparsed_Carsim_Data.fwa     = (round(10*0.5*(CarsimData(4)+ CarsimData(5)))/10)*pi/180; % deg-->rad\r\n    Sparsed_Carsim_Data.alphaf     = (round(10*0.5 * (CarsimData(6)+ CarsimData(8)))/10)*pi/180; % deg-->rad1λС   \r\n    Sparsed_Carsim_Data.alphar     = (round(10*0.5 * (CarsimData(7)+ CarsimData(9)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    Fy_l1      = round(10*CarsimData(10))/10; %Unit:N1λС  \r\n    Fy_l2      = round(10*CarsimData(11))/10; %Unit:N1λС  \r\n    Fy_r1      = round(10*CarsimData(12))/10; %Unit:N1λС  \r\n    Fy_r2      = round(10*CarsimData(13))/10; %Unit:N1λС  \r\n    Sparsed_Carsim_Data.Fyf  = Fy_l1 + Fy_r1;\r\n    Sparsed_Carsim_Data.Fyr  = Fy_l2 + Fy_r2;\r\n    \r\n    KappaL1 = CarsimData(14);\r\n    KappaL2 = CarsimData(15);\r\n    KappaR1 = CarsimData(16);\r\n    KappaR2 = CarsimData(17);\r\n    Sparsed_Carsim_Data.kappa_f = 0.5*(KappaL1 + KappaR1);\r\n    Sparsed_Carsim_Data.kappa_r = 0.5*(KappaL2 + KappaR2);\r\n    \r\n    Fx_l1      = round(10*CarsimData(18))/10; %Unit:N1λС  \r\n    Fx_l2      = round(10*CarsimData(19))/10; %Unit:N1λС  \r\n    Fx_r1      = round(10*CarsimData(20))/10; %Unit:N1λС  \r\n    Fx_r2      = round(10*CarsimData(21))/10; %Unit:N1λС  \r\n    Sparsed_Carsim_Data.Fxf  = Fx_l1 + Fx_r1;\r\n    Sparsed_Carsim_Data.Fxr  = Fx_l2 + Fx_r2;\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/SaveSimData2Mat.m",
    "content": "\r\n% Sim_Data_Both_ConstantCorneringStiff = Sim_Data_Both_ConstantCornering;\r\n\r\n% save SimResult_Both.mat Sim_Data;\r\n\r\n% save SimResult_OnlyBank.mat Sim_Data;\r\n\r\n% save SimResult_OnlyCurvature.mat Sim_Data;\r\n% \r\n\r\nOutputed_Data = Outputed_Data.signals.values(:,:);\r\n\r\nsave TireStiffnessEstimation_Data.mat Outputed_Data;\r\n\r\n"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/TireStiffness_Estimation.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"TireStiffness_Estimation\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.297\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"DynamicsEstimation\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [1018.0, 316.0, 809.0, 544.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[759.0, 367.0]\r\n\tZoomFactor\t\t[1.25]\r\n\tOffset\t\t\t[268.00714285714218, 235.39999999999998]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Wed Sep 18 09:17:29 2019\"\r\n  RTWModifiedTimeStamp\t  490697735\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:297>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"TireStiffness_Estimation\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"TireStiffness_Estimation\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"40\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"TireStiffness_Estimation\"\r\n    Location\t\t    [1018, 316, 1827, 860]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"125\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"146\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [0, 1]\r\n      Position\t\t      [350, 286, 445, 354]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_TireStiffness_Estimation.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [475, 287, 705, 353]\r\n      ZOrder\t\t      12\r\n      FunctionName\t      \"Main_TireStiffness_Estimation\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [735, 302, 830, 338]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"Outputed_Data\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      131\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      132\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"To Workspace\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/func_RLSEstimation_Ccf.m",
    "content": "function [y, Bout] = func_RLSEstimation_Ccf(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_cf, Num_cf, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_cf: is also called the \"forgetting\" exponential weight factor\r\n%     Num_cf is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_cf F_cf B_cf lambda_cf  Num_cf  Rinv_cf  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_cf = d;\r\n%         delta = delta_n;\r\n        Num_cf = FIR_Num;\r\n        Rinv_cf = delta_n*eye(Num_cf);\r\n        F_cf = zeros(Num_cf,1);\r\n        Y_cf = zeros(1, Num_cf);\r\n        B_cf =  -92000; %zeros(1,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_cf:-1:2\r\n            F_cf(J) = F_cf(J-1);\r\n            Y_cf(J) = Y_cf(J-1);\r\n        end;\r\n        F_cf(1) = f;\r\n        Y_cf(1) = d;\r\n        % Perform the convolution\r\n        y= F_cf'*B_cf;\r\n        error=Y_cf-y;% 1*nd\r\n        % Kalman gains\r\n        K = Rinv_cf*F_cf/(lambda_cf + F_cf'*Rinv_cf*F_cf);\r\n        % Update Rinv_cf\r\n        Rinvn = (Rinv_cf - K*F_cf'*Rinv_cf)/lambda_cf;\r\n        % Update the filter coefficients\r\n        B_cf = B_cf + K* error;\r\n        Rinv_cf = Rinvn;\r\n\r\n        Bout = B_cf;     \r\n%         R_f_out = Rinv_cf;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/func_RLSEstimation_Ccr.m",
    "content": "function [y, Bout] = func_RLSEstimation_Ccr(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_cr, Num_cr, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_cr: is also called the \"forgetting\" exponential weight factor\r\n%     Num_cr is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_cr F_cr B_cr lambda_cr  Num_cr  Rinv_cr  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_cr = d;\r\n%         delta = delta_n;\r\n        Num_cr = FIR_Num;\r\n        Rinv_cr = delta_n*eye(Num_cr);\r\n        F_cr = zeros(Num_cr,1);\r\n        Y_cr = zeros(1, Num_cr);\r\n        B_cr = -92000; %zeros(Num_cr,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_cr:-1:2\r\n            F_cr(J) = F_cr(J-1);\r\n            Y_cr(J) = Y_cr(J-1);\r\n        end;\r\n        F_cr(1) = f;\r\n        Y_cr(1) = d;\r\n        % Perform the convolution\r\n        y= F_cr'*B_cr;\r\n        error=Y_cr-y;\r\n        % Kalman gains\r\n        K = Rinv_cr*F_cr/(lambda_cr + F_cr'*Rinv_cr*F_cr);\r\n        % Update Rinv_cr\r\n        Rinvn = (Rinv_cr - K*F_cr'*Rinv_cr)/lambda_cr;\r\n        % Update the filter coefficients\r\n        B_cr = B_cr + K * error;\r\n        Rinv_cr = Rinvn;\r\n        \r\n        Bout = B_cr;\r\n%         R_r_out = Rinv_cr;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/func_RLSEstimation_Clf.m",
    "content": "function [y, Bout] = func_RLSEstimation_Clf(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_lf, Num_lf, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_lf: is also called the \"forgetting\" exponential weight factor\r\n%     Num_lf is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_lf F_lf B_lf lambda_lf  Num_lf  Rinv_lf  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f, 'initial')) % Initial\r\n        lambda_lf = d;\r\n        Num_lf = FIR_Num;\r\n        Rinv_lf = delta_n*eye(Num_lf);\r\n        F_lf = zeros(Num_lf,1);\r\n        Y_lf = zeros(1, Num_lf);\r\n        B_lf =  -92000; %zeros(1,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_lf:-1:2\r\n            F_lf(J) = F_lf(J-1);\r\n            Y_lf(J) = Y_lf(J-1);\r\n        end;\r\n        F_lf(1) = f;\r\n        Y_lf(1) = d;\r\n        % Perform the convolution\r\n        y= F_lf'*B_lf;\r\n        error=Y_lf-y;% 1*nd\r\n        % Kalman gains\r\n        K = Rinv_lf*F_lf/(lambda_lf + F_lf'*Rinv_lf*F_lf);\r\n        % Update Rinv_lf\r\n        Rinvn = (Rinv_lf - K*F_lf'*Rinv_lf)/lambda_lf;\r\n        % Update the filter coefficients\r\n        B_lf = B_lf + K* error;\r\n        Rinv_lf = Rinvn;\r\n\r\n        Bout = B_lf;     \r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chap5_TireStiffness_Estimation/func_RLSEstimation_Clr.m",
    "content": "function [y, Bout, R_r_out] = func_RLSEstimation_Clr(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_lr, Num_lr, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_lr: is also called the \"forgetting\" exponential weight factor\r\n%     Num_lr is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent Y_lr F_lr B_lr lambda_lr  Num_lr  Rinv_lr  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_lr = d;\r\n%         delta = delta_n;\r\n        Num_lr = FIR_Num;\r\n        Rinv_lr = delta_n*eye(Num_lr);\r\n        F_lr = zeros(Num_lr,1);\r\n        Y_lr = zeros(1, Num_lr);\r\n        B_lr = -92000; %zeros(Num_lr,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_lr:-1:2\r\n            F_lr(J) = F_lr(J-1);\r\n            Y_lr(J) = Y_lr(J-1);\r\n        end;\r\n        F_lr(1) = f;\r\n        Y_lr(1) = d;\r\n        % Perform the convolution\r\n        y= F_lr'*B_lr;\r\n        error=Y_lr-y;\r\n        % Kalman gains\r\n        K = Rinv_lr*F_lr/(lambda_lr + F_lr'*Rinv_lr*F_lr);\r\n        % Update Rinv_lr\r\n        Rinvn = (Rinv_lr - K*F_lr'*Rinv_lr)/lambda_lr;\r\n        % Update the filter coefficients\r\n        B_lr = B_lr + K * error;\r\n        Rinv_lr = Rinvn;\r\n        \r\n        Bout = B_lr;\r\n        R_r_out = Rinv_lr;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-5/chapter5_1_1.m",
    "content": "%% ˳ܣݼ򻯶ѧģ(СǶȼ)ſ˱Ⱦ\r\n% 汾V1.0дʱ2013.12.11\r\n% ſ˱Ⱦ복вصģ仯ˣſ˱ȾҲӦ仯\r\n% ֻһֵбҪ\r\nclc\r\nclear all;\r\n%% Ϊ\r\n% \r\nsyms x_dot y_dot phi phi_dot Y X;%״̬\r\nsyms delta_f  %ǰƫ,\r\n%syms sf sr;%ֱΪǰֵĻ,Ҫṩ\r\nSf=0.2; Sr=0.2;\r\n%syms a b;%ǰ־복ĵľ룬в\r\na=1.232;b=1.468;\r\n%syms C_cf C_cr C_lf C_lr;%ֱΪǰֵݺƫնȣв\r\nCcf=66900;Ccr=62700;Clf=66900;Clr=62700;\r\n%syms m g I;%mΪgΪٶȣIΪZתв\r\nm=1723;g=9.8;I=4175;\r\n\r\n% ѧģ\r\ndy_dot=-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+a*phi_dot)/x_dot)+Ccr*(b*phi_dot-y_dot)/x_dot)/m;\r\ndx_dot=y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*a)/x_dot))/m;\r\n%dphi_dot=dphi_dot;\r\ndphi_dot=(2*a*Ccf*(delta_f-(y_dot+a*phi_dot)/x_dot)-2*b*Ccr*(b*phi_dot-y_dot)/x_dot)/I;\r\nY_dot=x_dot*sin(phi)+y_dot*cos(phi);\r\nX_dot=x_dot*cos(phi)-y_dot*sin(phi);\r\n\r\n% ſ˱Ⱦ\r\nf=[dy_dot;dx_dot;phi_dot;dphi_dot;Y_dot;X_dot];%ѧģ\r\nkesi=[y_dot,x_dot,phi,phi_dot,Y,X];%ϵͳ״̬\r\nv=delta_f;\r\nR=jacobian(f,kesi);%A(t)-\r\nR2=jacobian(f,v);%B(t)-\r\n\r\n% ƾ(תΪɢ󣬲ý㷨  A=I+T*A(t),B=T*B(t))\r\nI=eye(6);\r\nsyms T;\r\nA=I+T*R;\r\nB=T*R2;\r\nA1=vpa(A,3);\r\nB1=vpa(B,3);\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chapter5_2_2.m",
    "content": "function [sys,x0,str,ts] = chapter5_2_2(t,x,u,flag)\r\n% óܣLTV MPC ͳ򻯶ѧģͣСǶȼ裩ƿΪSimulinkĿ\r\n% 汾 V1.0MATLAB汾R2011a,Sı׼ʽ\r\n% д 2013.12.11\r\n% һθд 2013.12.16\r\n% ״̬=[y_dot,x_dot,phi,phi_dot,Y,X]Ϊǰƫdelta_f\r\n\r\n\r\nswitch flag,\r\n case 0\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n%  case 4\r\n%   sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time \r\n\r\n case {1,4,9} % Unused flags\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0;\r\nsizes.NumDiscStates  = 6;\r\nsizes.NumOutputs     = 6;\r\nsizes.NumInputs      = 10;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 = zeros(sizes.NumDiscStates, 1);\r\n\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % sample time: [period, offset]\r\n\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x;\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    global a b; \r\n    %global kesi;\r\n    tic\r\n    Nx=6;%״̬ĸ\r\n    Nu=1;%ĸ\r\n    Ny=2;%ĸ\r\n    Np =20;%Ԥⲽ\r\n    Nc=5;%Ʋ\r\n    Row=1000;%ɳȨ\r\n    fprintf('Update start, t=%6.3f\\n',t)\r\n   \r\n    %ӿת,x_dotһǳСǷַֹĸΪ\r\n    y_dot=u(1)/3.6; %CarSimkm/hתΪm/s\r\n    x_dot=u(2)/3.6;%CarSimkm/hתΪm/s\r\n    if (0 == x_dot)\r\n        x_dot = 0.001;\r\n    end\r\n    \r\n    phi=u(3)*pi/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot=u(4)*3.141592654/180;% deg/s-->rad/s\r\n    Y=u(5);%λΪm\r\n    X=u(6);%λΪ\r\n    slip_ratio_L1=u(7);\r\n    slip_ratio_R1=u(8);\r\n    steer_L1=u(9);\r\n    steer_R1=u(10);\r\n    steer_deg = 0.5*(steer_L1 + steer_R1);\r\n    steer_rad = steer_deg*pi/180;\r\n    \r\n%% \r\n%syms sf sr;%ֱΪǰֵĻ,Ҫṩ\r\n    Sf=0.2; Sr=0.2;\r\n%syms lf lr;%ǰ־복ĵľ룬в\r\n    lf = 1.11; \r\n    lr = 1.67;\r\n    lfr = 2.78;\r\n%syms C_cf C_cr C_lf C_lr;%ֱΪǰֵݺƫնȣв\r\n    Ccf=66900; Ccr=62700; Clf=66900; Clr=62700;\r\n%syms m g I;%mΪgΪٶȣIΪZתв\r\n    m = 1600;%ms = 1370;\r\n    g = 9.8;\r\n    I = 2315.3; \r\n    \r\n   \r\n\r\n%% ο켣\r\n    shape=2.4;%ƣڲο켣\r\n    dx1=25;dx2=21.95;%ûκʵ壬ֻǲ\r\n    dy1=4.05;dy2=5.7;%ûκʵ壬ֻǲ\r\n    Xs1=27.19;Xs2=56.46;%\r\n    X_predict=zeros(Np,1);%ڱԤʱڵλϢǼ켣Ļ\r\n    phi_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    Y_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    \r\n    %  ¼kesi,״̬һ   \r\n    kesi=zeros(Nx+Nu,1);\r\n    kesi(1)=y_dot;%u(1)==X(1)\r\n    kesi(2)=x_dot;%u(2)==X(2)\r\n    kesi(3)=phi; %u(3)==X(3)\r\n    kesi(4)=phi_dot;\r\n    kesi(5)=Y;\r\n    kesi(6)=X;\r\n    \r\n    kesi(7) = steer_rad;\r\n    delta_f = steer_rad;\r\n    fprintf('Update start, u(1)=%4.2f\\n',steer_rad)\r\n\r\n    T=0.05;%沽\r\n    T_all=20;%ܵķʱ䣬ҪǷֹ켣Խ\r\n     \r\n    %Ȩؾ \r\n    Q_cell=cell(Np,Np);\r\n    for i=1:1:Np;\r\n        for j=1:1:Np;\r\n            if i==j\r\n                %Q_cell{i,j}=[200 0;0 100;];\r\n                Q_cell{i,j}=[2000 0;0 10000;];\r\n            else \r\n                Q_cell{i,j}=zeros(Ny,Ny);               \r\n            end\r\n        end \r\n    end \r\n    Q = cell2mat(Q_cell);\r\n    %R=5*10^4*eye(Nu*Nc);\r\n    R=5*10^5*eye(Nu*Nc);\r\n    %ҲҪľǿĻöѧģͣþ복أͨԶѧſ˱Ⱦõ\r\n    a=[                 1 - (259200*T)/(1723*x_dot),                                                         -T*(phi_dot + (2*((460218*phi_dot)/5 - 62700*y_dot))/(1723*x_dot^2) - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2)),                                    0,                     -T*(x_dot - 96228/(8615*x_dot)), 0, 0;\r\n        T*(phi_dot - (133800*delta_f)/(1723*x_dot)),                                                                                                                  (133800*T*delta_f*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2) + 1,                                    0,           T*(y_dot - (824208*delta_f)/(8615*x_dot)), 0, 0;\r\n                                                  0,                                                                                                                                                                                  0,                                    1,                                                   T, 0, 0;\r\n            (33063689036759*T)/(7172595384320*x_dot), T*(((2321344006605451863*phi_dot)/8589934592000 - (6325188028897689*y_dot)/34359738368)/(4175*x_dot^2) + (5663914248162509*((154*phi_dot)/125 + y_dot))/(143451907686400*x_dot^2)),                                   0, 1 - (813165919007900927*T)/(7172595384320000*x_dot), 0, 0;\r\n                                          T*cos(phi),                                                                                                                                                                         T*sin(phi),  T*(x_dot*cos(phi) - y_dot*sin(phi)),                                                   0, 1, 0;\r\n                                         -T*sin(phi),                                                                                                                                                                         T*cos(phi), -T*(y_dot*cos(phi) + x_dot*sin(phi)),                                                   0, 0, 1];\r\n   \r\n    b=[                                                               133800*T/1723;\r\n       T*((267600*delta_f)/1723 - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot));\r\n                                                                                 0;\r\n                                                5663914248162509*T/143451907686400;\r\n                                                                                 0;\r\n                                                                                 0];  \r\n    d_k=zeros(Nx,1);%ƫ\r\n    state_k1=zeros(Nx,1);%Ԥһʱ״̬ڼƫ\r\n    %¼ΪɢģԤһʱ״̬\r\n    %ע⣬Ϊǰıʽa,ba,bͻǰıʽΪlflr\r\n    state_k1(1,1)=y_dot+T*(-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)+Ccr*(lr*phi_dot-y_dot)/x_dot)/m);\r\n    state_k1(2,1)=x_dot+T*(y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*lf)/x_dot))/m);\r\n    state_k1(3,1)=phi+T*phi_dot;\r\n    state_k1(4,1)=phi_dot+T*((2*lf*Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)-2*lr*Ccr*(lr*phi_dot-y_dot)/x_dot)/I);\r\n    state_k1(5,1)=Y+T*(x_dot*sin(phi)+y_dot*cos(phi));\r\n    state_k1(6,1)=X+T*(x_dot*cos(phi)-y_dot*sin(phi));\r\n    d_k=state_k1-a*kesi(1:6,1)-b*kesi(7,1);%falconeʽ2.11bd(k,t)\r\n  \r\n    d_piao_k=zeros(Nx+Nu,1);%d_kʽοfalcone(B,4c)\r\n    d_piao_k(1:6,1)=d_k;\r\n    d_piao_k(7,1)=0;\r\n    \r\n    A_cell=cell(2,2);\r\n    B_cell=cell(2,1);\r\n    A_cell{1,1}=a;\r\n    A_cell{1,2}=b;\r\n    A_cell{2,1}=zeros(Nu,Nx);\r\n    A_cell{2,2}=eye(Nu);\r\n\r\n    B_cell{1,1}=b;\r\n    B_cell{2,1}=eye(Nu);\r\n    %A=zeros(Nu+Nx,Nu+Nx);\r\n    A=cell2mat(A_cell);\r\n    B=cell2mat(B_cell);\r\n   % C=[0 0 1 0 0 0 0;0 0 0 1 0 0 0;0 0 0 0 1 0 0;];%Ǻܹ\r\n    C = [0 0 1 0 0 0 0;\r\n         0 0 0 0 1 0 0;];\r\n   \r\n    PSI_cell=cell(Np,1);\r\n    THETA_cell=cell(Np,Nc);\r\n    GAMMA_cell=cell(Np,Np);\r\n    PHI_cell=cell(Np,1);\r\n    for p=1:1:Np;\r\n        PHI_cell{p,1}=d_piao_k;%˵ҪʵʱµģΪ˼㣬һν\r\n        for q=1:1:Np;\r\n            if q<=p;\r\n                GAMMA_cell{p,q}=C*A^(p-q);\r\n            else \r\n                GAMMA_cell{p,q}=zeros(Ny,Nx+Nu);\r\n            end \r\n        end\r\n    end\r\n    for j=1:1:Np\r\n     PSI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PSI=cell2mat(PSI_cell);%size(PSI)=[Ny*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA=cell2mat(GAMMA_cell);%дGAMMA\r\n    PHI=cell2mat(PHI_cell);\r\n    \r\n   \r\n    H_cell=cell(2,2);\r\n    H_cell{1,1}=THETA'*Q*THETA + R;\r\n    H_cell{1,2}=zeros(Nu*Nc,1);\r\n    H_cell{2,1}=zeros(1,Nu*Nc);\r\n    H_cell{2,2}=Row;\r\n    H=cell2mat(H_cell);\r\n   \r\n    error_1=zeros(Ny*Np,1);\r\n    Yita_ref_cell=cell(Np,1);\r\n    for p=1:1:Np\r\n        if t+p*T>T_all\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(Np,1)=X+X_DOT*Np*T;\r\n            %X_predict(Np,1)=X+X_dot*Np*t;\r\n            z1=shape/dx1*(X_predict(Np,1)-Xs1)-shape/2;\r\n            z2=shape/dx2*(X_predict(Np,1)-Xs2)-shape/2;\r\n            Y_ref(p,1)=dy1/2*(1+tanh(z1))-dy2/2*(1+tanh(z2));\r\n            phi_ref(p,1)=atan(dy1*(1/cosh(z1))^2*(1.2/dx1)-dy2*(1/cosh(z2))^2*(1.2/dx2));\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n            \r\n        else\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(p,1)=X+X_DOT*p*T;%ȼδXλãX(t)=X+X_dot*t\r\n            z1=shape/dx1*(X_predict(p,1)-Xs1)-shape/2;\r\n            z2=shape/dx2*(X_predict(p,1)-Xs2)-shape/2;\r\n            Y_ref(p,1)=dy1/2*(1+tanh(z1))-dy2/2*(1+tanh(z2));\r\n            phi_ref(p,1)=atan(dy1*(1/cosh(z1))^2*(1.2/dx1)-dy2*(1/cosh(z2))^2*(1.2/dx2));\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n\r\n        end\r\n    end\r\n    Yita_ref=cell2mat(Yita_ref_cell);\r\n    error_1 = PSI*kesi + GAMMA*PHI - Yita_ref; %ƫ\r\n    f_cell=cell(1,2);\r\n    f_cell{1,1}=error_1'*Q*THETA;\r\n    f_cell{1,2}=0;\r\n    f=cell2mat(f_cell)';\r\n    \r\n %% ΪԼ\r\n %Լ\r\n    A_t=zeros(Nc,Nc);%falcone P181\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if q<=p \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ڿ˻\r\n    Ut=kron(ones(Nc,1), steer_rad);\r\n    umin = -0.1744;%άƱĸͬ\r\n    umax = 0.1744; % 0.1744rad = 10deg\r\n\r\n    Umin=kron(ones(Nc,1),umin);\r\n    Umax=kron(ones(Nc,1),umax);\r\n     \r\n    %Լ\r\n    ycmax=[0.21;5];\r\n    ycmin=[-0.3;-3];\r\n    Ycmax=kron(ones(Np,1),ycmax);\r\n    Ycmin=kron(ones(Np,1),ycmin);\r\n    \r\n    %ϿԼԼ\r\n    A_cons_cell={A_I zeros(Nu*Nc,1); -A_I zeros(Nu*Nc,1);THETA zeros(Ny*Np,1);-THETA zeros(Ny*Np,1)};\r\n    b_cons_cell={Umax-Ut; -Umin+Ut; Ycmax-PSI*kesi-GAMMA*PHI; -Ycmin+PSI*kesi+GAMMA*PHI};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ\r\n    b_cons=cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n    \r\n    %״̬Լ\r\n    M=10; \r\n    delta_umin=-0.0148; % 0.0148rad = 0.8deg\r\n    delta_umax=0.0148;  \r\n    \r\n    delta_Umin=kron(ones(Nc,1),delta_umin);\r\n    delta_Umax=kron(ones(Nc,1),delta_umax);\r\n    lb=[delta_Umin;0];%̣ⷽ״̬½磬ʱڿɳ\r\n    ub=[delta_Umax;M];%̣ⷽ״̬Ͻ磬ʱڿɳ\r\n    \r\n    %% ʼ\r\n       options = optimset('Algorithm','active-set');\r\n       x_start=zeros(Nc+1,1);%һʼ\r\n      [DU,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub,x_start,options);\r\n      fprintf('exitflag=%d\\n',exitflag);\r\n      fprintf('H=%4.2f\\n',H(1,1));\r\n      fprintf('f=%4.2f\\n',f(1,1));\r\n    %% \r\n%     u_piao=DU(1);%õ\r\n%     U(1)=kesi(7,1)+u_piao;%ǰʱ̵ĿΪһʱ̿+\r\n   %U(2)=Yita_ref(2);%dphi_ref\r\n%     sys= U;\r\n    steer_des = steer_rad + DU(1);\r\n    steer_des_deg = steer_des*180/pi;\r\n    sys= [steer_des_deg; steer_des_deg; 0; 0;Y; X];\r\n    toc\r\n% End of mdlOutputs.\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-5/chapter5_5_2.m",
    "content": "function [sys,x0,str,ts] =Main_TireStiffness_Estimation(t,x,u,flag)\r\n%***************************************************************%\r\n% Simulation for estimation of cornering stiffness using RLS method\r\n% Assume: lf, lr are known; \r\n% Assume: Vy, Vel, steering_angle and side-slip angle are measurable\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵ\r\nsizes.NumOutputs     = 12; %Sеĸ\r\nsizes.NumInputs      = 21; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). \r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05s \r\n\r\n%------------Global parameters and initialization--------------------%\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % Ignore the first few inputs from CarSim\r\n    % vehicle parameters initialization\r\n    global VehicleParams; % for SUV\r\n    VehicleParams.Lf  = 1.12;  % 1.05\r\n    VehicleParams.Lr  = 1.48;  % 1.55\r\n\r\n    \r\n    % RLS for longitudinal stiffness initialization\r\n    [y, Ccf] = func_RLSEstimation_Clf('initial', 0.95, 1, 10);\r\n    [y, Ccr] = func_RLSEstimation_Clr('initial', 0.95, 1, 10);\r\n\r\n    % RLS for cornering stiffness initialization\r\n    [y, Clf] = func_RLSEstimation_Ccf('initial', 0.95, 1, 10);\r\n    [y, Clr] = func_RLSEstimation_Ccr('initial', 0.95, 1, 10);\r\n    \r\n%     global RLS_params; \r\n%     RLS_params.nDataTuple    = 10;\r\n%     RLS_params.nCoefficients = 1;\r\n%     RLS_params.initialCoefficients = -90000* ones(RLS_params.nCoefficients,1);    \r\n%     RLS_params.delta         = 10;\r\n%     RLS_params.lambda = 0.95;\r\n%     [y, e, c] = func_RLS_Alt_New('initial', 0, params);   \r\n% \r\n%     global pre_regressor;\r\n%     nc = 1;\r\n%     nd = 10;\r\n%     pre_regressor.input = zeros(nc,nd);\r\n%     pre_regressor.d     = zeros(nd,1);\r\n    \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  Ŀǰûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\nglobal InitialGapflag;\r\nglobal VehicleParams;\r\n\r\nCcf_Hat        = 0;\r\nCcr_Hat        = 0;\r\nClf_Hat        = 0;\r\nClr_Hat        = 0;\r\n\r\nFyf_Hat_err    = 0;\r\nFyr_Hat_err    = 0;\r\nFxf_Hat_err    = 0;\r\nFxr_Hat_err    = 0;\r\n\r\nalpha_f_Hat    = 0;\r\nalpha_r_Hat    = 0; \r\nalpha_f_Direct = 0;\r\nalpha_r_Direct = 0;\r\n\r\nif InitialGapflag < 3 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n    %-----Update State Estimation of measured Vehicle Configuration------%\r\n    [Carsim_export] = func_CarsimData_Parse(u);   \r\n    Vx            = Carsim_export.x_dot; \r\n    Vy            = Carsim_export.y_dot; \r\n    yawrate       = Carsim_export.phi_dot; % rad/s\r\n    fwa           = Carsim_export.fwa;\r\n    \r\n    Fyf_Direct    = Carsim_export.Fyf;\r\n    Fyr_Direct    = Carsim_export.Fyr;   \r\n    alpha_f_Direct = Carsim_export.alphaf;\r\n    alpha_r_Direct = Carsim_export.alphar;\r\n    \r\n    kappa_f_Direct = Carsim_export.kappa_f;\r\n    kappa_r_Direct = Carsim_export.kappa_r;\r\n    Fxf_Direct     = Carsim_export.Fxf;\r\n    Fxr_Direct     = Carsim_export.Fxr;\r\n    \r\n    %-----1. Estimate Cornering stiffness use estimated sideslip angle----%  \r\n    %for front tire\r\n    alpha_f_Hat = (Vy + yawrate*VehicleParams.Lf)/Vx - fwa;\r\n    [Fyf_hat, Ccf_Hat] = func_RLSEstimation_Ccf(alpha_f_Hat, Fyf_Direct);\r\n    Fyf_Hat_err = Fyf_hat - Fyf_Direct;\r\n    %for rear tire \r\n    alpha_r_Hat = (Vy - yawrate*VehicleParams.Lr)/Vx;\r\n    [Fyr_hat, Ccr_Hat] = func_RLSEstimation_Ccr(alpha_r_Hat, Fyr_Direct);\r\n    Fyr_Hat_err = Fyr_hat - Fyr_Direct;\r\n    \r\n    %-----2. Estimate longitudinal stiffness use direct tire slip ratio---%  \r\n    %for front tire\r\n    [Fxf_hat, Clf_Hat] = func_RLSEstimation_Clf(kappa_f_Direct, Fxf_Direct);\r\n    Fxf_Hat_err = Fxf_hat - Fxf_Direct;\r\n    %for rear tire \r\n    [Fxr_hat, Clr_Hat] = func_RLSEstimation_Clr(kappa_r_Direct, Fxr_Direct);\r\n    Fxr_Hat_err = Fxr_hat - Fxr_Direct;\r\n\r\nend % end of if Initialflag < 2 % \r\n    \r\nsys = [Ccf_Hat; Ccr_Hat; Fyf_Hat_err; Fyr_Hat_err; Clf_Hat; Clr_Hat; Fxf_Hat_err; Fxr_Hat_err; alpha_f_Hat; alpha_r_Hat; alpha_f_Direct; alpha_r_Direct]; % \r\n\r\n% sys = [t_Elapsed; Ax; Ay_G_SM; fwa; Beta; Vel; Vy; yawrate; Roll; Rollrate; vx_hat; vy_hat; yawrate_hat; roll_hat; rollrate_hat; CafHat; CarHat; C_alpha_f_hat_ay; C_alpha_r_hat_ay]; % \r\n    \r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [Sparsed_Carsim_Data] = func_CarsimData_Parse(CarsimData)\r\n%***************************************************************%\r\n% Parse data exported from CarSim, ˳CarSimһ\r\n%***************************************************************%       \r\n    Sparsed_Carsim_Data.x_dot   = CarsimData(1)/3.6; %Unit:km/h-->m/s1λС  \r\n    Sparsed_Carsim_Data.y_dot   = CarsimData(2)/3.6; %Unit:km/h-->m/s1λС   \r\n    Sparsed_Carsim_Data.phi_dot = (round(10*CarsimData(3))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    Sparsed_Carsim_Data.fwa     = (round(10*0.5*(CarsimData(4)+ CarsimData(5)))/10)*pi/180; % deg-->rad\r\n    Sparsed_Carsim_Data.alphaf     = (round(10*0.5 * (CarsimData(6)+ CarsimData(8)))/10)*pi/180; % deg-->rad1λС   \r\n    Sparsed_Carsim_Data.alphar     = (round(10*0.5 * (CarsimData(7)+ CarsimData(9)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    Fy_l1      = round(10*CarsimData(10))/10; %Unit:N1λС  \r\n    Fy_l2      = round(10*CarsimData(11))/10; %Unit:N1λС  \r\n    Fy_r1      = round(10*CarsimData(12))/10; %Unit:N1λС  \r\n    Fy_r2      = round(10*CarsimData(13))/10; %Unit:N1λС  \r\n    Sparsed_Carsim_Data.Fyf  = Fy_l1 + Fy_r1;\r\n    Sparsed_Carsim_Data.Fyr  = Fy_l2 + Fy_r2;\r\n    \r\n    KappaL1 = CarsimData(14);\r\n    KappaL2 = CarsimData(15);\r\n    KappaR1 = CarsimData(16);\r\n    KappaR2 = CarsimData(17);\r\n    Sparsed_Carsim_Data.kappa_f = 0.5*(KappaL1 + KappaR1);\r\n    Sparsed_Carsim_Data.kappa_r = 0.5*(KappaL2 + KappaR2);\r\n    \r\n    Fx_l1      = round(10*CarsimData(18))/10; %Unit:N1λС  \r\n    Fx_l2      = round(10*CarsimData(19))/10; %Unit:N1λС  \r\n    Fx_r1      = round(10*CarsimData(20))/10; %Unit:N1λС  \r\n    Fx_r2      = round(10*CarsimData(21))/10; %Unit:N1λС  \r\n    Sparsed_Carsim_Data.Fxf  = Fx_l1 + Fx_r1;\r\n    Sparsed_Carsim_Data.Fxr  = Fx_l2 + Fx_r2;\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-6/Chapter6_3.m",
    "content": "function [sys,x0,str,ts] = MPC_Controller(t,x,u,flag)\r\n% óܣLTV MPC ͳ򻯶ѧģͣСǶȼ裩ƿԹ滮켣ʵֹ켣ٿƹ\r\n% 汾 V1.0MATLAB汾R2011a,Sı׼ʽ\r\n% д 2013.12.17\r\n% һθд 2013.12.18\r\n% ״̬=[y_dot,x_dot,phi,phi_dot,Y,X]Ϊǰƫdelta_f\r\n% QP֮ⷨǰķfalconeѧλеķ֮ǰķʵȼۣ\r\n%\r\n\r\nswitch flag,\r\n case 0\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n%  case 4\r\n%   sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time \r\n\r\n case {1,4,9} % Unused flags\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0; %\r\nsizes.NumDiscStates  = 6; %\r\nsizes.NumOutputs     = 1;\r\nsizes.NumInputs      = 16;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 =[0.001;0.0001;0.0001;0.00001;0.00001;0.00001];    \r\nglobal U;\r\nU=[0];%ʼ,һ켣ȥUΪһά\r\n% global x;\r\n% x = zeros(md.ne + md.pye + md.me + md.Hu*md.me,1);   \r\n% Initialize the discrete states.\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.02 0];       % sample time: [period, offset]\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x;\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    global a b; \r\n    %global u_piao;\r\n    global U;\r\n    %global kesi;\r\n    tic\r\n    Nx=6;%״̬ĸ\r\n    Nu=1;%ĸ\r\n    Ny=2;%ĸfalconeLTV֤ûĿЧã߿\r\n    Np =25;%Ԥⲽ\r\n    Nc=10;%Ʋ\r\n    Row=1000;%ɳ\r\n    fprintf('Update start, t=%6.3f\\n',t)\r\n   \r\n    %ӿת, x_dotһǳСǷַֹĸΪ\r\n   % y_dot=u(1)/3.6-0.000000001*0.4786; %CarSimkm/hתΪm/s\r\n    y_dot=u(1)/3.6;\r\n    x_dot=u(2)/3.6+0.0001;%CarSimkm/hתΪm/s\r\n    phi=u(3)*3.141592654/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot=u(4)*3.141592654/180;\r\n    Y=u(5);%λΪm\r\n    X=u(6);%λΪ\r\n    \r\n    \r\n%% ݹ滮ȷο켣\r\n%Ӷ˿ڶֲ滮,ݽ4ߵĲ\r\n    Paramater_X_Y(1,1)=u(7);\r\n    Paramater_X_Y(1,2)=u(8);\r\n    Paramater_X_Y(1,3)=u(9);\r\n    Paramater_X_Y(1,4)=u(10);\r\n    Paramater_X_Y(1,5)=u(11);\r\n    Paramater_X_phi(1,1)=u(12);\r\n    Paramater_X_phi(1,2)=u(13);\r\n    Paramater_X_phi(1,3)=u(14);\r\n    Paramater_X_phi(1,4)=u(15);\r\n    Paramater_X_phi(1,5)=u(16);\r\n\r\n%% \r\n%syms sf sr;%ֱΪǰֵĻ,Ҫṩ\r\n    Sf=0.2; Sr=0.2;\r\n%syms lf lr;%ǰ־복ĵľ룬в\r\n    lf=1.232;lr=1.468;\r\n%syms C_cf C_cr C_lf C_lr;%ֱΪǰֵݺƫնȣв\r\n    Ccf=66900;Ccr=62700;Clf=66900;Clr=62700;\r\n%syms m g I;%mΪgΪٶȣIΪZתв\r\n    m=1723;g=9.8;I=4175;\r\n   \r\n\r\n%% ο켣\r\n%     shape=2.4;%ƣڲο켣\r\n%     dx1=25;dx2=21.95;%ûκʵ壬ֻǲ\r\n%     dy1=4.05;dy2=5.7;%ûκʵ壬ֻǲ\r\n%     Xs1=27.19;Xs2=56.46;%\r\n    X_predict=zeros(Np,1);%ڱԤʱڵλϢǼ켣Ļ\r\n    phi_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    Y_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    dphi_ref=zeros(Np,1);\r\n%% ת\r\n    %  ¼kesi,״̬һ   \r\n    kesi=zeros(Nx+Nu,1);\r\n    kesi(1)=y_dot;%u(1)==X(1)\r\n    kesi(2)=x_dot;%u(2)==X(2)\r\n    kesi(3)=phi; %u(3)==X(3)\r\n    kesi(4)=phi_dot;\r\n    kesi(5)=Y;\r\n    kesi(6)=X;\r\n    kesi(7)=U(1);\r\n    delta_f=U(1);\r\n    fprintf('Update start, u(1)=%4.2f\\n',U(1))\r\n\r\n    T=0.02;%沽\r\n    T_all=20;%ʱ趨ܵķʱ䣬ҪǷֹ켣Խ\r\n     \r\n    %Ȩؾ \r\n    Q_cell=cell(Np,Np);\r\n    for i=1:1:Np;\r\n        for j=1:1:Np;\r\n            if i==j\r\n                %Q_cell{i,j}=[200 0;0 100;];\r\n                Q_cell{i,j}=[2000 0;0 10000;];\r\n            else \r\n                Q_cell{i,j}=zeros(Ny,Ny);               \r\n            end\r\n        end \r\n    end \r\n    %R=5*10^4*eye(Nu*Nc);\r\n    R=5*10^5*eye(Nu*Nc);\r\n    %ҲҪľǿĻöѧģͣþ복أͨԶѧſ˱Ⱦõ\r\n    a=[                 1 - (259200*T)/(1723*x_dot),                                                         -T*(phi_dot + (2*((460218*phi_dot)/5 - 62700*y_dot))/(1723*x_dot^2) - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2)),                                    0,                     -T*(x_dot - 96228/(8615*x_dot)), 0, 0\r\n        T*(phi_dot - (133800*delta_f)/(1723*x_dot)),                                                                                                                  (133800*T*delta_f*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2) + 1,                                    0,           T*(y_dot - (824208*delta_f)/(8615*x_dot)), 0, 0\r\n                                                  0,                                                                                                                                                                                  0,                                    1,                                                   T, 0, 0\r\n            (33063689036759*T)/(7172595384320*x_dot), T*(((2321344006605451863*phi_dot)/8589934592000 - (6325188028897689*y_dot)/34359738368)/(4175*x_dot^2) + (5663914248162509*((154*phi_dot)/125 + y_dot))/(143451907686400*x_dot^2)),                                   0, 1 - (813165919007900927*T)/(7172595384320000*x_dot), 0, 0\r\n                                          T*cos(phi),                                                                                                                                                                         T*sin(phi),  T*(x_dot*cos(phi) - y_dot*sin(phi)),                                                   0, 1, 0\r\n                                         -T*sin(phi),                                                                                                                                                                         T*cos(phi), -T*(y_dot*cos(phi) + x_dot*sin(phi)),                                                   0, 0, 1];\r\n   \r\n    b=[                                                               133800*T/1723\r\n       T*((267600*delta_f)/1723 - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot))\r\n                                                                                 0\r\n                                                5663914248162509*T/143451907686400\r\n                                                                                 0\r\n                                                                                 0];  \r\n    d_k=zeros(Nx,1);%ƫfalcone42ҳеd(k,t)\r\n    state_k1=zeros(Nx,1);%Ԥһʱ״̬ڼƫfalcone42ҳkesi(k+1,t)\r\n    %¼ΪɢģԤһʱ״̬\r\n    %ע⣬Ϊǰıʽa,ba,bͻǰıʽΪlflr\r\n    state_k1(1,1)=y_dot+T*(-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)+Ccr*(lr*phi_dot-y_dot)/x_dot)/m);\r\n    state_k1(2,1)=x_dot+T*(y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*lf)/x_dot))/m);\r\n    state_k1(3,1)=phi+T*phi_dot;\r\n    state_k1(4,1)=phi_dot+T*((2*lf*Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)-2*lr*Ccr*(lr*phi_dot-y_dot)/x_dot)/I);\r\n    state_k1(5,1)=Y+T*(x_dot*sin(phi)+y_dot*cos(phi));\r\n    state_k1(6,1)=X+T*(x_dot*cos(phi)-y_dot*sin(phi));\r\n    d_k=state_k1-a*kesi(1:6,1)-b*kesi(7,1);%falconeʽ2.11bd(k,t)\r\n    d_piao_k=zeros(Nx+Nu,1);%d_kʽοfalcone(B,4c)\r\n    d_piao_k(1:6,1)=d_k;\r\n    d_piao_k(7,1)=0;\r\n    \r\n    A_cell=cell(2,2);\r\n    B_cell=cell(2,1);\r\n    A_cell{1,1}=a;\r\n    A_cell{1,2}=b;\r\n    A_cell{2,1}=zeros(Nu,Nx);\r\n    A_cell{2,2}=eye(Nu);\r\n    B_cell{1,1}=b;\r\n    B_cell{2,1}=eye(Nu);\r\n    %A=zeros(Nu+Nx,Nu+Nx);\r\n    A=cell2mat(A_cell);\r\n    B=cell2mat(B_cell);\r\n   % C=[0 0 1 0 0 0 0;0 0 0 1 0 0 0;0 0 0 0 1 0 0;];%Ǻܹ\r\n    C=[0 0 1 0 0 0 0;0 0 0 0 1 0 0;];\r\n    PSI_cell=cell(Np,1);%ԭ汾PHI\r\n    THETA_cell=cell(Np,Nc);\r\n    GAMMA_cell=cell(Np,Np);%µļ㷽ӵ,falcone179ҳһйʽ\r\n    PHI_cell=cell(Np,1);%ע⣬汾֮ǰеPHIһԭ汾PHIΪ汾PSI\r\n    for p=1:1:Np;\r\n        PHI_cell{p,1}=d_piao_k;%˵ҪʵʱµģΪ˼㣬һν\r\n        for q=1:1:Np;\r\n            if q<=p;\r\n                GAMMA_cell{p,q}=C*A^(p-q);\r\n            else \r\n                GAMMA_cell{p,q}=zeros(Ny,Nx+Nu);\r\n            end \r\n        end\r\n    end\r\n    for j=1:1:Np\r\n     PSI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PSI=cell2mat(PSI_cell);%size(PSI)=[Ny*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA=cell2mat(GAMMA_cell);%дGAMMA\r\n    PHI=cell2mat(PHI_cell);\r\n    Q=cell2mat(Q_cell);\r\n    H_cell=cell(2,2);\r\n    H_cell{1,1}=THETA'*Q*THETA+R;\r\n    H_cell{1,2}=zeros(Nu*Nc,1);\r\n    H_cell{2,1}=zeros(1,Nu*Nc);\r\n    H_cell{2,2}=Row;\r\n    H=cell2mat(H_cell);\r\n    error_1=zeros(Ny*Np,1);\r\n    Yita_ref_cell=cell(Np,1);\r\n    for p=1:1:Np\r\n        if t+p*T>T_all\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(Np,1)=X+X_DOT*Np*T;\r\n            Y_ref(p,1)=polyval(Paramater_X_Y, X_predict(Np,1));\r\n            phi_ref(p,1)=polyval(Paramater_X_phi, X_predict(Np,1));\r\n            %dphi_ref(p,1)=-((2916*X_DOT*sinh((12*X_predict(Np,1))/125 - 11907/3125))/(78125*cosh((12* X_predict(Np,1))/125 - 11907/3125)^3) - (65664*X_DOT*sinh((48* X_predict(Np,1))/439 - 80922/10975))/(963605*cosh((48* X_predict(Np,1))/439 - 80922/10975)^3))/((243/(1250*cosh((12*X_predict(Np,1))/125 - 11907/3125)^2) - 684/(2195*cosh((48*X_predict(Np,1))/439 - 80922/10975)^2))^2 + 1);\r\n            %Yita_ref_cell{p,1}=[phi_ref(p,1);dphi_ref(p,1);Y_ref(p,1)];%ԽˣԤʱһʼΪֵ\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n            \r\n        else\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(p,1)=X+X_DOT*p*T;%ȼδXλãX(t)=X+X_dot*t\r\n            Y_ref(p,1)=polyval(Paramater_X_Y, X_predict(p,1));\r\n            phi_ref(p,1)=polyval(Paramater_X_phi, X_predict(p,1));\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n            %dphi_ref(p,1)=-((2916*X_DOT*sinh((12* X_predict(p,1))/125 - 11907/3125))/(78125*cosh((12* X_predict(p,1))/125 - 11907/3125)^3) - (65664*X_DOT*sinh((48* X_predict(p,1))/439 - 80922/10975))/(963605*cosh((48* X_predict(p,1))/439 - 80922/10975)^3))/((243/(1250*cosh((12*X_predict(p,1))/125 - 11907/3125)^2) - 684/(2195*cosh((48*X_predict(p,1))/439 - 80922/10975)^2))^2 + 1);\r\n            %Yita_ref_cell{p,1}=[phi_ref(p,1);dphi_ref(p,1);Y_ref(p,1)];%3һ\r\n        end\r\n    end\r\n    Yita_ref=cell2mat(Yita_ref_cell);\r\n%     fprintf('X_predict=%4.2f\\n',X_predict(1));    \r\n%     fprintf('ʵλãX=%4.2f\\n',X);\r\n%     fprintf('Update Yita, phi_ref=%4.2f\\n',Yita_ref(1));\r\n%     fprintf('Update Yita, dphi_ref=%4.2f\\n',Yita_ref(2));\r\n%     fprintf('Update Yita, phi=%4.2f\\n',phi);\r\n%     fprintf('ʵλãY=%4.2f\\n',Y);\r\n\r\n    error_1=Yita_ref-PSI*kesi-GAMMA*PHI; %ƫ\r\n    f_cell=cell(1,2);\r\n    f_cell{1,1}=2*error_1'*Q*THETA;\r\n    f_cell{1,2}=0;\r\n%     f=(cell2mat(f_cell))';\r\n    f=-cell2mat(f_cell);\r\n    \r\n %% ΪԼ\r\n %Լ\r\n    A_t=zeros(Nc,Nc);%falcone P181\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if q<=p \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ӦfalconeԼľA,ڿ˻\r\n    Ut=kron(ones(Nc,1),U(1));%˴оĿڿƻ,ʱ˳\r\n    umin=-0.1744;%άƱĸͬ\r\n    umax=0.1744;\r\n    delta_umin=-0.0148*0.4;\r\n    delta_umax=0.0148*0.4;\r\n    Umin=kron(ones(Nc,1),umin);\r\n    Umax=kron(ones(Nc,1),umax);\r\n    \r\n    %ԼӲԼãʱΪӲԼ\r\n    ycmax=[0.21;5];\r\n    ycmin=[-0.3;-3];\r\n    Ycmax=kron(ones(Np,1),ycmax);\r\n    Ycmin=kron(ones(Np,1),ycmin);\r\n    \r\n    %ϿԼԼ\r\n    A_cons_cell={A_I zeros(Nu*Nc,1);-A_I zeros(Nu*Nc,1);THETA zeros(Ny*Np,1);-THETA zeros(Ny*Np,1)};\r\n    b_cons_cell={Umax-Ut;-Umin+Ut;Ycmax-PSI*kesi-GAMMA*PHI;-Ycmin+PSI*kesi+GAMMA*PHI};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ\r\n    b_cons=cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n    \r\n    %״̬Լ\r\n    M=10; \r\n    delta_Umin=kron(ones(Nc,1),delta_umin);\r\n    delta_Umax=kron(ones(Nc,1),delta_umax);\r\n    lb=[delta_Umin;0];%̣ⷽ״̬½磬ʱڿɳ\r\n    ub=[delta_Umax;M];%̣ⷽ״̬Ͻ磬ʱڿɳ\r\n    \r\n    %% ʼ\r\n%    [X,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub);\r\n       options = optimset('Algorithm','active-set');\r\n       x_start=zeros(Nc+1,1);%һʼ\r\n      [X,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub,x_start,options);\r\n      fprintf('exitflag=%d\\n',exitflag);\r\n      fprintf('H=%4.2f\\n',H(1,1));\r\n      fprintf('f=%4.2f\\n',f(1,1));\r\n    %% \r\n    u_piao=X(1);%õ\r\n    U(1)=kesi(7,1)+u_piao;%ǰʱ̵ĿΪһʱ̿+\r\n   %U(2)=Yita_ref(2);%dphi_ref\r\n    sys= U;\r\n    toc\r\n% End of mdlOutputs.\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-6/Chapter6_4_3.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"Chapter6_4_3\"\r\n  Version\t\t  7.6\r\n  MdlSubVersion\t\t  0\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.87\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  SavedCharacterEncoding  \"GBK\"\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"FinalMPCModelDynamicCarsimWithPlan_1218\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  MaxMDLFileLineLength\t  120\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sun Mar 09 21:35:54 2014\"\r\n  RTWModifiedTimeStamp\t  316301750\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:87>\"\r\n  ConfigurationManager\t  \"None\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      2\r\n      Version\t\t      \"1.10.0\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  3\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"100\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  4\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  5\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  6\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"Use local settings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"Warning\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  7\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  8\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateSLWebview\t  off\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      11\r\n\t      Version\t\t      \"1.10.0\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      12\r\n\t      Version\t\t      \"1.10.0\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"MultiInstanceERTCode\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      TargetFunctionLibrary   \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTCodeCoverageTool     \"None\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      PortableWordSizes\t      off\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition    \" [ 200, 85, 1080, 715 ] \"\r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    2\r\n  }\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Value\t\t      \"1\"\r\n      VectorParams1D\t      on\r\n      SamplingMode\t      \"Sample based\"\r\n      OutMin\t\t      \"[]\"\r\n      OutMax\t\t      \"[]\"\r\n      OutDataTypeStr\t      \"Inherit: Inherit from 'Constant value'\"\r\n      LockScale\t\t      off\r\n      SampleTime\t      \"inf\"\r\n      FramePeriod\t      \"inf\"\r\n      PreserveConstantTs      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Fcn\r\n      Expr\t\t      \"sin(u[1])\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Inputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      UseBusObject\t      off\r\n      BusObject\t\t      \"BusObject\"\r\n      NonVirtualBus\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      \"S-Function\"\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      ModelBased\t      off\r\n      TickLabels\t      \"OneTimeTick\"\r\n      ZoomMode\t\t      \"on\"\r\n      Grid\t\t      \"on\"\r\n      TimeRange\t\t      \"auto\"\r\n      YMin\t\t      \"-5\"\r\n      YMax\t\t      \"5\"\r\n      SaveToWorkspace\t      off\r\n      SaveName\t\t      \"ScopeData\"\r\n      LimitDataPoints\t      on\r\n      MaxDataPoints\t      \"5000\"\r\n      Decimation\t      \"1\"\r\n      SampleInput\t      off\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      FixptAsFi\t\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      X0\t\t      \"0\"\r\n      InputProcessing\t      \"Inherited\"\r\n      SampleTime\t      \"1\"\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"Chapter6_4_3\"\r\n    Location\t\t    [119, 121, 1481, 778]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"100\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"75\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"47\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [485, 74, 585, 136]\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"simfile\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Name\t\t      \"Constant\"\r\n      SID\t\t      \"50\"\r\n      Position\t\t      [290, 170, 320, 200]\r\n      Value\t\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      \"S-Function\"\r\n      Name\t\t      \"Controller\"\r\n      SID\t\t      \"1\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [335, 286, 450, 384]\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"lightBlue\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"Chapter6_3\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux1\"\r\n      SID\t\t      \"54\"\r\n      Ports\t\t      [1, 6]\r\n      Position\t\t      [645, 143, 650, 232]\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"6\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Fcn\r\n      Name\t\t      \"Fcn\"\r\n      SID\t\t      \"49\"\r\n      Position\t\t      [290, 105, 350, 135]\r\n      Expr\t\t      \"180*u/3.1415926\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux\"\r\n      SID\t\t      \"48\"\r\n      Ports\t\t      [4, 1]\r\n      Position\t\t      [400, 66, 405, 144]\r\n      ShowName\t\t      off\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux1\"\r\n      SID\t\t      \"73\"\r\n      Ports\t\t      [2, 1]\r\n      Position\t\t      [515, 305, 520, 360]\r\n      BlockMirror\t      on\r\n      NamePlacement\t      \"alternate\"\r\n      ShowName\t\t      off\r\n      Inputs\t\t      \"2\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      \"S-Function\"\r\n      Name\t\t      \"PathPlan\"\r\n      SID\t\t      \"72\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [610, 345, 730, 435]\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"[0.000000, 1.000000, 0.000000]\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"chapter6_2_4\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope2\"\r\n      SID\t\t      \"41\"\r\n      Ports\t\t      [6]\r\n      Position\t\t      [960, 147, 1025, 228]\r\n      Floating\t\t      off\r\n      Location\t\t      [6, 48, 1286, 759]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"6\"\r\n      ZoomMode\t\t      \"xonly\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n\taxes2\t\t\t\"%<SignalLabel>\"\r\n\taxes3\t\t\t\"%<SignalLabel>\"\r\n\taxes4\t\t\t\"%<SignalLabel>\"\r\n\taxes5\t\t\t\"%<SignalLabel>\"\r\n\taxes6\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-1~35~-10~-20~-4~0\"\r\n      YMax\t\t      \"1~36.5~5~20~2~200\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope3\"\r\n      SID\t\t      \"53\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [655, 15, 720, 95]\r\n      Floating\t\t      off\r\n      Location\t\t      [5, 48, 1371, 727]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"0\"\r\n      YMax\t\t      \"19\"\r\n      SaveName\t\t      \"ScopeData2\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"42\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [795, 105, 855, 135]\r\n      VariableName\t      \"y\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"52\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [160, 405, 220, 435]\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      Name\t\t      \"Unit Delay\"\r\n      SID\t\t      \"57\"\r\n      Position\t\t      [695, 263, 730, 297]\r\n      InputProcessing\t      \"Elements as channels (sample based)\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"XY Graph\"\r\n      SID\t\t      \"56\"\r\n      Ports\t\t      [2]\r\n      Position\t\t      [945, 256, 1040, 349]\r\n      LibraryVersion\t      \"1.225\"\r\n      SourceBlock\t      \"simulink/Sinks/XY Graph\"\r\n      SourceType\t      \"XY scope.\"\r\n      ShowPortLabels\t      \"FromPortIcon\"\r\n      SystemSampleTime\t      \"-1\"\r\n      FunctionWithSeparateData off\r\n      RTWMemSecFuncInitTerm   \"Inherit from model\"\r\n      RTWMemSecFuncExecute    \"Inherit from model\"\r\n      RTWMemSecDataConstants  \"Inherit from model\"\r\n      RTWMemSecDataInternal   \"Inherit from model\"\r\n      RTWMemSecDataParameters \"Inherit from model\"\r\n      GeneratePreprocessorConditionals off\r\n      xmin\t\t      \"0\"\r\n      xmax\t\t      \"250\"\r\n      ymin\t\t      \"-3\"\r\n      ymax\t\t      \"6\"\r\n      st\t\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"delta_f\"\r\n      SID\t\t      \"18\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [160, 295, 225, 375]\r\n      Floating\t\t      off\r\n      Location\t\t      [5, 48, 1371, 727]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-3\"\r\n      YMax\t\t      \"3\"\r\n      SaveName\t\t      \"ScopeData1\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [15, 0]\r\n      Branch {\r\n\tPoints\t\t\t[50, 0; 0, 15]\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 85; 15, 0]\r\n\tBranch {\r\n\t  DstBlock\t\t  \"Demux1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  Points\t\t  [0, 90]\r\n\t  DstBlock\t\t  \"Unit Delay\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Fcn\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [5, 0]\r\n      Branch {\r\n\tPoints\t\t\t[10, 0; 0, -25]\r\n\tBranch {\r\n\t  Points\t\t  [0, -20]\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  2\r\n\t}\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, -60; -235, 0; 0, 275]\r\n\tBranch {\r\n\t  DstBlock\t\t  \"delta_f\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  Points\t\t  [0, 85]\r\n\t  DstBlock\t\t  \"To Workspace1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Constant\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [50, 0; 0, -45]\r\n      Branch {\r\n\tPoints\t\t\t[0, -5]\r\n\tDstBlock\t\t\"Mux\"\r\n\tDstPort\t\t\t4\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, -5]\r\n\tBranch {\r\n\t  Points\t\t  [20, 0]\r\n\t}\r\n\tBranch {\r\n\t  Points\t\t  [0, -20]\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  3\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Mux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [35, 0]\r\n      Branch {\r\n\tDstBlock\t\t\"CarSim S-Function\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, -50]\r\n\tDstBlock\t\t\"Scope3\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      3\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      3\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      4\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      4\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      5\r\n      Points\t\t      [155, 0]\r\n      Branch {\r\n\tDstBlock\t\t\"Scope2\"\r\n\tDstPort\t\t\t5\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 115]\r\n\tDstBlock\t\t\"XY Graph\"\r\n\tDstPort\t\t\t2\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      6\r\n      Points\t\t      [180, 0]\r\n      Branch {\r\n\tDstBlock\t\t\"Scope2\"\r\n\tDstPort\t\t\t6\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 55]\r\n\tDstBlock\t\t\"XY Graph\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Controller\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-75, 0; 0, -215]\r\n      DstBlock\t\t      \"Fcn\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Unit Delay\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [45, 0; 0, 40]\r\n      Branch {\r\n\tDstBlock\t\t\"Mux1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 70]\r\n\tDstBlock\t\t\"PathPlan\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"PathPlan\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-35, 0; 0, -45]\r\n      DstBlock\t\t      \"Mux1\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Mux1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Controller\"\r\n      DstPort\t\t      1\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"delta\"\r\n      Position\t\t      [262, 113]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [887, 274]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [883, 320]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"y_dot\"\r\n      Position\t\t      [739, 140]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"x_dot\"\r\n      Position\t\t      [736, 158]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"phi\"\r\n      Position\t\t      [739, 174]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"phi_dot\"\r\n      Position\t\t      [739, 189]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [735, 202]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [736, 216]\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-6/ReadMe",
    "content": "This folder holds simulation codes for Chapter 6\n\n* chapter6_2_4.m: Matlab code for traj_planner use MPC\n\n* Chapter6_3.m: Matlab code for MPC tracking controller\n\n* chap6_LocalPlan_TrackingCtrl: Simulink/Carsim codes for Chapter 6\n"
  },
  {
    "path": "Chapter-6/chap6_LocalPlan_TrackingCtrl/FinalMPCControllerDynamicCarSim_1218.m",
    "content": "function [sys,x0,str,ts] = FinalMPCControllerDynamicCarSim_1218(t,x,u,flag)\r\n% óܣLTV MPC ͳ򻯶ѧģͣСǶȼ裩ƿԹ滮켣ʵֹ켣ٿƹ\r\n% 汾 V1.0MATLAB汾R2011a,Sı׼ʽ\r\n% д 2013.12.17\r\n% һθд 2013.12.18\r\n% ״̬=[y_dot,x_dot,phi,phi_dot,Y,X]Ϊǰƫdelta_f\r\n% QP֮ⷨǰķfalconeѧλеķ֮ǰķʵȼۣ\r\n%\r\n\r\nswitch flag,\r\n case 0\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n%  case 4\r\n%   sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time \r\n\r\n case {1,4,9} % Unused flags\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes;\r\nsizes.NumContStates  = 0; %\r\nsizes.NumDiscStates  = 6; %\r\nsizes.NumOutputs     = 1;\r\nsizes.NumInputs      = 16;\r\nsizes.DirFeedthrough = 1; % Matrix D is non-empty.\r\nsizes.NumSampleTimes = 1;\r\nsys = simsizes(sizes); \r\nx0 =[0.001;0.0001;0.0001;0.00001;0.00001;0.00001];    \r\nglobal U;\r\nU=[0];%ʼ,һ켣ȥUΪһά\r\n% global x;\r\n% x = zeros(md.ne + md.pye + md.me + md.Hu*md.me,1);   \r\n% Initialize the discrete states.\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.02 0];       % sample time: [period, offset]\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x;\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    global a b; \r\n    %global u_piao;\r\n    global U;\r\n    %global kesi;\r\n    tic\r\n    Nx=6;%״̬ĸ\r\n    Nu=1;%ĸ\r\n    Ny=2;%ĸfalconeLTV֤ûĿЧã߿\r\n    Np =25;%Ԥⲽ\r\n    Nc=10;%Ʋ\r\n    Row=1000;%ɳ\r\n    fprintf('Update start, t=%6.3f\\n',t)\r\n   \r\n    %ӿת, x_dotһǳСǷַֹĸΪ\r\n   % y_dot=u(1)/3.6-0.000000001*0.4786; %CarSimkm/hתΪm/s\r\n    y_dot=u(1)/3.6;\r\n    x_dot=u(2)/3.6+0.0001;%CarSimkm/hתΪm/s\r\n    phi=u(3)*3.141592654/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot=u(4)*3.141592654/180;\r\n    Y=u(5);%λΪm\r\n    X=u(6);%λΪ\r\n    \r\n    \r\n%% ݹ滮ȷο켣\r\n%Ӷ˿ڶֲ滮,ݽ4ߵĲ\r\n    Paramater_X_Y(1,1)=u(7);\r\n    Paramater_X_Y(1,2)=u(8);\r\n    Paramater_X_Y(1,3)=u(9);\r\n    Paramater_X_Y(1,4)=u(10);\r\n    Paramater_X_Y(1,5)=u(11);\r\n    Paramater_X_phi(1,1)=u(12);\r\n    Paramater_X_phi(1,2)=u(13);\r\n    Paramater_X_phi(1,3)=u(14);\r\n    Paramater_X_phi(1,4)=u(15);\r\n    Paramater_X_phi(1,5)=u(16);\r\n\r\n%% \r\n%syms sf sr;%ֱΪǰֵĻ,Ҫṩ\r\n    Sf=0.2; Sr=0.2;\r\n%syms lf lr;%ǰ־복ĵľ룬в\r\n    lf=1.232;lr=1.468;\r\n%syms C_cf C_cr C_lf C_lr;%ֱΪǰֵݺƫնȣв\r\n    Ccf=66900;Ccr=62700;Clf=66900;Clr=62700;\r\n%syms m g I;%mΪgΪٶȣIΪZתв\r\n    m=1723;g=9.8;I=4175;\r\n   \r\n\r\n%% ο켣\r\n%     shape=2.4;%ƣڲο켣\r\n%     dx1=25;dx2=21.95;%ûκʵ壬ֻǲ\r\n%     dy1=4.05;dy2=5.7;%ûκʵ壬ֻǲ\r\n%     Xs1=27.19;Xs2=56.46;%\r\n    X_predict=zeros(Np,1);%ڱԤʱڵλϢǼ켣Ļ\r\n    phi_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    Y_ref=zeros(Np,1);%ڱԤʱڵ켣\r\n    dphi_ref=zeros(Np,1);\r\n%% ת\r\n    %  ¼kesi,״̬һ   \r\n    kesi=zeros(Nx+Nu,1);\r\n    kesi(1)=y_dot;%u(1)==X(1)\r\n    kesi(2)=x_dot;%u(2)==X(2)\r\n    kesi(3)=phi; %u(3)==X(3)\r\n    kesi(4)=phi_dot;\r\n    kesi(5)=Y;\r\n    kesi(6)=X;\r\n    kesi(7)=U(1);\r\n    delta_f=U(1);\r\n    fprintf('Update start, u(1)=%4.2f\\n',U(1))\r\n\r\n    T=0.02;%沽\r\n    T_all=20;%ʱ趨ܵķʱ䣬ҪǷֹ켣Խ\r\n     \r\n    %Ȩؾ \r\n    Q_cell=cell(Np,Np);\r\n    for i=1:1:Np;\r\n        for j=1:1:Np;\r\n            if i==j\r\n                %Q_cell{i,j}=[200 0;0 100;];\r\n                Q_cell{i,j}=[2000 0;0 10000;];\r\n            else \r\n                Q_cell{i,j}=zeros(Ny,Ny);               \r\n            end\r\n        end \r\n    end \r\n    %R=5*10^4*eye(Nu*Nc);\r\n    R=5*10^5*eye(Nu*Nc);\r\n    %ҲҪľǿĻöѧģͣþ복أͨԶѧſ˱Ⱦõ\r\n    a=[                 1 - (259200*T)/(1723*x_dot),                                                         -T*(phi_dot + (2*((460218*phi_dot)/5 - 62700*y_dot))/(1723*x_dot^2) - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2)),                                    0,                     -T*(x_dot - 96228/(8615*x_dot)), 0, 0\r\n        T*(phi_dot - (133800*delta_f)/(1723*x_dot)),                                                                                                                  (133800*T*delta_f*((154*phi_dot)/125 + y_dot))/(1723*x_dot^2) + 1,                                    0,           T*(y_dot - (824208*delta_f)/(8615*x_dot)), 0, 0\r\n                                                  0,                                                                                                                                                                                  0,                                    1,                                                   T, 0, 0\r\n            (33063689036759*T)/(7172595384320*x_dot), T*(((2321344006605451863*phi_dot)/8589934592000 - (6325188028897689*y_dot)/34359738368)/(4175*x_dot^2) + (5663914248162509*((154*phi_dot)/125 + y_dot))/(143451907686400*x_dot^2)),                                   0, 1 - (813165919007900927*T)/(7172595384320000*x_dot), 0, 0\r\n                                          T*cos(phi),                                                                                                                                                                         T*sin(phi),  T*(x_dot*cos(phi) - y_dot*sin(phi)),                                                   0, 1, 0\r\n                                         -T*sin(phi),                                                                                                                                                                         T*cos(phi), -T*(y_dot*cos(phi) + x_dot*sin(phi)),                                                   0, 0, 1];\r\n   \r\n    b=[                                                               133800*T/1723\r\n       T*((267600*delta_f)/1723 - (133800*((154*phi_dot)/125 + y_dot))/(1723*x_dot))\r\n                                                                                 0\r\n                                                5663914248162509*T/143451907686400\r\n                                                                                 0\r\n                                                                                 0];  \r\n    d_k=zeros(Nx,1);%ƫfalcone42ҳеd(k,t)\r\n    state_k1=zeros(Nx,1);%Ԥһʱ״̬ڼƫfalcone42ҳkesi(k+1,t)\r\n    %¼ΪɢģԤһʱ״̬\r\n    %ע⣬Ϊǰıʽa,ba,bͻǰıʽΪlflr\r\n    state_k1(1,1)=y_dot+T*(-x_dot*phi_dot+2*(Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)+Ccr*(lr*phi_dot-y_dot)/x_dot)/m);\r\n    state_k1(2,1)=x_dot+T*(y_dot*phi_dot+2*(Clf*Sf+Clr*Sr+Ccf*delta_f*(delta_f-(y_dot+phi_dot*lf)/x_dot))/m);\r\n    state_k1(3,1)=phi+T*phi_dot;\r\n    state_k1(4,1)=phi_dot+T*((2*lf*Ccf*(delta_f-(y_dot+lf*phi_dot)/x_dot)-2*lr*Ccr*(lr*phi_dot-y_dot)/x_dot)/I);\r\n    state_k1(5,1)=Y+T*(x_dot*sin(phi)+y_dot*cos(phi));\r\n    state_k1(6,1)=X+T*(x_dot*cos(phi)-y_dot*sin(phi));\r\n    d_k=state_k1-a*kesi(1:6,1)-b*kesi(7,1);%falconeʽ2.11bd(k,t)\r\n    d_piao_k=zeros(Nx+Nu,1);%d_kʽοfalcone(B,4c)\r\n    d_piao_k(1:6,1)=d_k;\r\n    d_piao_k(7,1)=0;\r\n    \r\n    A_cell=cell(2,2);\r\n    B_cell=cell(2,1);\r\n    A_cell{1,1}=a;\r\n    A_cell{1,2}=b;\r\n    A_cell{2,1}=zeros(Nu,Nx);\r\n    A_cell{2,2}=eye(Nu);\r\n    B_cell{1,1}=b;\r\n    B_cell{2,1}=eye(Nu);\r\n    %A=zeros(Nu+Nx,Nu+Nx);\r\n    A=cell2mat(A_cell);\r\n    B=cell2mat(B_cell);\r\n   % C=[0 0 1 0 0 0 0;0 0 0 1 0 0 0;0 0 0 0 1 0 0;];%Ǻܹ\r\n    C=[0 0 1 0 0 0 0;0 0 0 0 1 0 0;];\r\n    PSI_cell=cell(Np,1);%ԭ汾PHI\r\n    THETA_cell=cell(Np,Nc);\r\n    GAMMA_cell=cell(Np,Np);%µļ㷽ӵ,falcone179ҳһйʽ\r\n    PHI_cell=cell(Np,1);%ע⣬汾֮ǰеPHIһԭ汾PHIΪ汾PSI\r\n    for p=1:1:Np;\r\n        PHI_cell{p,1}=d_piao_k;%˵ҪʵʱµģΪ˼㣬һν\r\n        for q=1:1:Np;\r\n            if q<=p;\r\n                GAMMA_cell{p,q}=C*A^(p-q);\r\n            else \r\n                GAMMA_cell{p,q}=zeros(Ny,Nx+Nu);\r\n            end \r\n        end\r\n    end\r\n    for j=1:1:Np\r\n     PSI_cell{j,1}=C*A^j;\r\n        for k=1:1:Nc\r\n            if k<=j\r\n                THETA_cell{j,k}=C*A^(j-k)*B;\r\n            else \r\n                THETA_cell{j,k}=zeros(Ny,Nu);\r\n            end\r\n        end\r\n    end\r\n    PSI=cell2mat(PSI_cell);%size(PSI)=[Ny*Np Nx+Nu]\r\n    THETA=cell2mat(THETA_cell);%size(THETA)=[Ny*Np Nu*Nc]\r\n    GAMMA=cell2mat(GAMMA_cell);%дGAMMA\r\n    PHI=cell2mat(PHI_cell);\r\n    Q=cell2mat(Q_cell);\r\n    H_cell=cell(2,2);\r\n    H_cell{1,1}=THETA'*Q*THETA+R;\r\n    H_cell{1,2}=zeros(Nu*Nc,1);\r\n    H_cell{2,1}=zeros(1,Nu*Nc);\r\n    H_cell{2,2}=Row;\r\n    H=cell2mat(H_cell);\r\n    error_1=zeros(Ny*Np,1);\r\n    Yita_ref_cell=cell(Np,1);\r\n    for p=1:1:Np\r\n        if t+p*T>T_all\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(Np,1)=X+X_DOT*Np*T;\r\n            Y_ref(p,1)=polyval(Paramater_X_Y, X_predict(Np,1));\r\n            phi_ref(p,1)=polyval(Paramater_X_phi, X_predict(Np,1));\r\n            %dphi_ref(p,1)=-((2916*X_DOT*sinh((12*X_predict(Np,1))/125 - 11907/3125))/(78125*cosh((12* X_predict(Np,1))/125 - 11907/3125)^3) - (65664*X_DOT*sinh((48* X_predict(Np,1))/439 - 80922/10975))/(963605*cosh((48* X_predict(Np,1))/439 - 80922/10975)^3))/((243/(1250*cosh((12*X_predict(Np,1))/125 - 11907/3125)^2) - 684/(2195*cosh((48*X_predict(Np,1))/439 - 80922/10975)^2))^2 + 1);\r\n            %Yita_ref_cell{p,1}=[phi_ref(p,1);dphi_ref(p,1);Y_ref(p,1)];%ԽˣԤʱһʼΪֵ\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n            \r\n        else\r\n            X_DOT=x_dot*cos(phi)-y_dot*sin(phi);%ϵٶ\r\n            X_predict(p,1)=X+X_DOT*p*T;%ȼδXλãX(t)=X+X_dot*t\r\n            Y_ref(p,1)=polyval(Paramater_X_Y, X_predict(p,1));\r\n            phi_ref(p,1)=polyval(Paramater_X_phi, X_predict(p,1));\r\n            Yita_ref_cell{p,1}=[phi_ref(p,1);Y_ref(p,1)];\r\n            %dphi_ref(p,1)=-((2916*X_DOT*sinh((12* X_predict(p,1))/125 - 11907/3125))/(78125*cosh((12* X_predict(p,1))/125 - 11907/3125)^3) - (65664*X_DOT*sinh((48* X_predict(p,1))/439 - 80922/10975))/(963605*cosh((48* X_predict(p,1))/439 - 80922/10975)^3))/((243/(1250*cosh((12*X_predict(p,1))/125 - 11907/3125)^2) - 684/(2195*cosh((48*X_predict(p,1))/439 - 80922/10975)^2))^2 + 1);\r\n            %Yita_ref_cell{p,1}=[phi_ref(p,1);dphi_ref(p,1);Y_ref(p,1)];%3һ\r\n        end\r\n    end\r\n    Yita_ref=cell2mat(Yita_ref_cell);\r\n%     fprintf('X_predict=%4.2f\\n',X_predict(1));    \r\n%     fprintf('ʵλãX=%4.2f\\n',X);\r\n%     fprintf('Update Yita, phi_ref=%4.2f\\n',Yita_ref(1));\r\n%     fprintf('Update Yita, dphi_ref=%4.2f\\n',Yita_ref(2));\r\n%     fprintf('Update Yita, phi=%4.2f\\n',phi);\r\n%     fprintf('ʵλãY=%4.2f\\n',Y);\r\n\r\n    error_1=Yita_ref-PSI*kesi-GAMMA*PHI; %ƫ\r\n    f_cell=cell(1,2);\r\n    f_cell{1,1}=2*error_1'*Q*THETA;\r\n    f_cell{1,2}=0;\r\n%     f=(cell2mat(f_cell))';\r\n    f=-cell2mat(f_cell);\r\n    \r\n %% ΪԼ\r\n %Լ\r\n    A_t=zeros(Nc,Nc);%falcone P181\r\n    for p=1:1:Nc\r\n        for q=1:1:Nc\r\n            if q<=p \r\n                A_t(p,q)=1;\r\n            else \r\n                A_t(p,q)=0;\r\n            end\r\n        end \r\n    end \r\n    A_I=kron(A_t,eye(Nu));%ӦfalconeԼľA,ڿ˻\r\n    Ut=kron(ones(Nc,1),U(1));%˴оĿڿƻ,ʱ˳\r\n    umin=-0.1744;%άƱĸͬ\r\n    umax=0.1744;\r\n    delta_umin=-0.0148*0.4;\r\n    delta_umax=0.0148*0.4;\r\n    Umin=kron(ones(Nc,1),umin);\r\n    Umax=kron(ones(Nc,1),umax);\r\n    \r\n    %ԼӲԼãʱΪӲԼ\r\n    ycmax=[0.21;5];\r\n    ycmin=[-0.3;-3];\r\n    Ycmax=kron(ones(Np,1),ycmax);\r\n    Ycmin=kron(ones(Np,1),ycmin);\r\n    \r\n    %ϿԼԼ\r\n    A_cons_cell={A_I zeros(Nu*Nc,1);-A_I zeros(Nu*Nc,1);THETA zeros(Ny*Np,1);-THETA zeros(Ny*Np,1)};\r\n    b_cons_cell={Umax-Ut;-Umin+Ut;Ycmax-PSI*kesi-GAMMA*PHI;-Ycmin+PSI*kesi+GAMMA*PHI};\r\n    A_cons=cell2mat(A_cons_cell);%̣ⷽ״̬ʽԼתΪֵȡֵΧ\r\n    b_cons=cell2mat(b_cons_cell);%̣ⷽ״̬ʽԼȡֵ\r\n    \r\n    %״̬Լ\r\n    M=10; \r\n    delta_Umin=kron(ones(Nc,1),delta_umin);\r\n    delta_Umax=kron(ones(Nc,1),delta_umax);\r\n    lb=[delta_Umin;0];%̣ⷽ״̬½磬ʱڿɳ\r\n    ub=[delta_Umax;M];%̣ⷽ״̬Ͻ磬ʱڿɳ\r\n    \r\n    %% ʼ\r\n%    [X,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub);\r\n       options = optimset('Algorithm','active-set');\r\n       x_start=zeros(Nc+1,1);%һʼ\r\n      [X,fval,exitflag]=quadprog(H,f,A_cons,b_cons,[],[],lb,ub,x_start,options);\r\n      fprintf('exitflag=%d\\n',exitflag);\r\n      fprintf('H=%4.2f\\n',H(1,1));\r\n      fprintf('f=%4.2f\\n',f(1,1));\r\n    %% \r\n    u_piao=X(1);%õ\r\n    U(1)=kesi(7,1)+u_piao;%ǰʱ̵ĿΪһʱ̿+\r\n   %U(2)=Yita_ref(2);%dphi_ref\r\n    sys= U;\r\n    toc\r\n% End of mdlOutputs.\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-6/chap6_LocalPlan_TrackingCtrl/FinalMPCPlanerDynamicCarSim_1218.m",
    "content": "function [sys,x0,str,ts] = FinalMPCPlanerDynamicCarSim_1218(t,x,u,flag)\r\n% óܣõģƹ滮ڣܹϰ\r\n% 汾 V1.0MATLAB汾R2011a,Sı׼ʽ\r\n% д 2013.12.17\r\n% һθд 2014.02.24\r\n% ״̬=[y_dot,x_dot,phi,,Y,X]Ϊǰƫay\r\n\r\n\r\nswitch flag,\r\n case 0  %flag=0ʾڳʼ״̬ʱúmdlInitializeSizesгʼ\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2  %flag=2ʾʱҪһɢ״̬\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3 %flag=3ʾʱҪ\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n%  case 4\r\n%   sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time \r\n\r\n case {1,4,9} % Unused flags\r\n    % flag=1ʾʱҪ״̬΢\r\n    %flag=4ʾʱҪһβʱ䣬ֻɢϵͳãҪڱ䲽\r\n    %flag=9ʾʱϵͳҪһ˵дmdlTerminateдsys=[]Ϳ\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes; %ģĽṹsimsizes\r\nsizes.NumContStates  = 0;%ģ״̬ĸ\r\nsizes.NumDiscStates  = 5;%ģɢ״̬ĸ\r\nsizes.NumOutputs     = 10;%Yphi,ߵϵҪԿdphi,dphi=ay/x_dot;\r\nsizes.NumInputs      = 6;%ģĸ\r\nsizes.DirFeedthrough = 1; %ģǷֱӹͨ\r\nsizes.NumSampleTimes = 1;%ģĲһ\r\nsys = simsizes(sizes); %󸳸sys\r\n\r\nx0 =[0.001;0.0001;0.0001;0.00001;0.00001;];    %״̬\r\n%global U;\r\n%U=[0];%ʼ,UΪһά\r\n% global x;\r\n% x = zeros(md.ne + md.pye + md.me + md.Hu*md.me,1);   \r\n% Initialize the discrete states.\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.1 0];       % : [period, offset],켣滮Ϊ100ms\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x; %״̬\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    %uCarSim\r\n    %x״̬x=[y_dot,x_dot,phi,,Y,X]\r\n    %tʱ\r\n    tic\r\n    Nx=5;%״̬ĸ \r\n    %Nu=1;%ĸΪǰƫay\r\n    %Ny=2;%ĸfalconeLTV֤ûĿЧã߿\r\n    Np =15;%Ԥⲽ\r\n    Nc=2;%Ʋ\r\n    Nobs=6;%ϰ\r\n    T=0.1;%Sample Time\r\n   \r\n    %ӿת,x_dotһǳСǷַֹĸΪ\r\n    % y_dot=u(1)/3.6-0.000000001*0.4786;%CarSimkm/hתΪm/s\r\n    y_dot=u(1)/3.6; %ٶȵλkm/hתΪm/s\r\n    x_dot=u(2)/3.6+0.0001;%CarSimkm/hתΪm/s.һСΪ˷ֹĸΪ\r\n    phi=u(3)*pi/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot=u(4)*pi/180;%ٶȣǶתΪ\r\n    Y=u(5);%λΪm\r\n    X=u(6);%λΪ\r\n   \r\n%% ο켣\r\n    shape=2.4;%ƣڲο켣\r\n    dx1=25;dx2=21.95;%ûκʵ壬ֻǲ\r\n    dy1=4.05;dy2=5.7;%ûκʵ壬ֻǲ\r\n    Xs1=27.19;Xs2=56.46;%\r\n  \tX_phi=1:1:220;%Ǹٶȣx_dotģٶΪ10m/s=10*0.1=1\r\n    z1=shape/dx1*(X_phi-Xs1)-shape/2;\r\n    z2=shape/dx2*(X_phi-Xs2)-shape/2;\r\n    Y_ref=dy1/2.*(1+tanh(z1))-dy2/2.*(1+tanh(z2));\r\n   % phi_ref=atan(dy1*(1./cosh(z1)).^2*(1.2/dx1)-dy2*(1./cosh(z2)).^2*(1.2/dx2));\r\n%% ת״̬תΪ״̬\r\n    State_Initial=zeros(Nx,1);\r\n    State_Initial(1,1)=y_dot;\r\n    State_Initial(2,1)=x_dot;\r\n    State_Initial(3,1)=phi;\r\n    State_Initial(4,1)=Y;\r\n    State_Initial(5,1)=X;    \r\n%% ϰϢ\r\n    X_obstacle=zeros(Nobs,1);\r\n    X_obstacle(1:2)=30;\r\n    X_obstacle(3:4)=35;\r\n    X_obstacle(5:6)=32.5;\r\n    Y_obstacle=zeros(Nobs,1);\r\n    Y_obstacle(1)=0.5;\r\n    Y_obstacle(2)=1;\r\n    Y_obstacle(3)=0.5;\r\n    Y_obstacle(4)=1;\r\n    Y_obstacle(5)=0.5;\r\n    Y_obstacle(6)=1;\r\n    Yref=(Y_ref(1,round(State_Initial(5,1))+1:round(State_Initial(5,1))+15))';%Yrefõǽ㷨˴Ϊֲ·\r\n    Q=100*eye(Np,Np);%۾󣬶Ϊ1ԸݸԵ\r\n    R=20*eye(Nc,Nc); %\r\n    S=100;%ϺȨ    \r\n%% ʼ\r\n    %Լ\r\n    mu=0.4;%Ħϵ\r\n    g=9.8;\r\n    lb=[-mu*g;-mu*g];\r\n    ub=[mu*g;mu*g];\r\n    A=[];\r\n    b=[];\r\n    Aeq=[];\r\n    beq=[];\r\n    options = optimset('Algorithm','active-set');\r\n    [A,fval,exitflag]=fmincon(@(x)MY_costfunction(x,State_Initial,Np,Nc,Nobs,T,Yref,Q,R,S,X_obstacle,Y_obstacle),[0;0;],A,b,Aeq,beq,lb,ub,[],options);%Լ⣬ٶ\r\n%   [A,fval,exitflag]=fminbnd(@(x)MY_costfunction(x,State_Initial,Np,Nc,T,Yref,Q,R,S),lb,ub);%ֻ½ԼֲС\r\n%   [A,fval,exitflag]=fminsearch(@(x)MY_costfunction(x,State_Initial,Np,Nc,Nobs,T,Yref,Q,R,S,X_obstacle,Y_obstacle),[0;0]);%Լ⣬ٶ\r\n    fprintf('exitflag=%d\\n',exitflag);\r\n   \r\n%% \r\n% ¸ݼĿƵе״̬\r\n    y_dot_predict=zeros(Np,1);\r\n    x_dot_predict=zeros(Np,1);\r\n    phi_predict=zeros(Np,1);\r\n    Y_predict=zeros(Np,1);\r\n    X_predict=zeros(Np,1);\r\n\r\n for i=1:1:Np\r\n     if i==Nc-1 \r\n            ay(i)=A(1);\r\n             % ״̬\r\n            y_dot_predict(i,1)=State_Initial(1,1)+T*ay(i);\r\n            x_dot_predict(i,1)=State_Initial(2,1);\r\n            phi_predict(i,1)=State_Initial(3,1)+T*ay(i)/State_Initial(2,1);\r\n            Y_predict(i,1)=State_Initial(4,1)+T*(State_Initial(2,1)*sin(State_Initial(3,1))+State_Initial(1,1)*cos(State_Initial(3,1)));\r\n            X_predict(i,1)=State_Initial(5,1)+T*(State_Initial(2,1)*cos(State_Initial(3,1))-State_Initial(1,1)*sin(State_Initial(3,1)));  \r\n      else %if i<=5\r\n            ay(i)=A(2);%дǽ\r\n            y_dot_predict(i,1)=y_dot_predict(i-1,1)+T*ay(i);\r\n            x_dot_predict(i,1)=State_Initial(2,1);\r\n            phi_predict(i,1)=phi_predict(i-1,1)+T*ay(i)/x_dot_predict(i-1,1);\r\n            Y_predict(i,1)=Y_predict(i-1)+T*(State_Initial(2,1)*sin(phi_predict(i-1))+y_dot_predict(i-1)*cos(phi_predict(i-1)));\r\n            X_predict(i,1)=X_predict(i-1)+T*(State_Initial(2,1)*cos(phi_predict(i-1))-y_dot_predict(i-1)*sin(phi_predict(i-1)));\r\n      end \r\n end\r\n    Paramater_X_Y=polyfit(X_predict,Y_predict,4);\r\n    Paramater_X_PHI=polyfit(X_predict,phi_predict,4);\r\n    OutPut(1:5)=Paramater_X_Y;\r\n    OutPut(6:10)=Paramater_X_PHI;\r\n    sys=OutPut;\r\n    toc\r\n% End of mdlOutputs.\r\n %% ۺĹӺ\r\nfunction cost = MY_costfunction(x,State_Initial,Np,Nc,Nobs,T,Yref,Q,R,S,X_obstacle,Y_obstacle)\r\n    cost=0;\r\n    y_dot=State_Initial(1,1);\r\n    x_dot=State_Initial(2,1);\r\n    phi=State_Initial(3,1);\r\n    Y=State_Initial(4,1);\r\n    X_start=State_Initial(5,1);\r\n    \r\n    y_dot_predict=zeros(Np,1);\r\n    x_dot_predict=zeros(Np,1);\r\n    phi_predict=zeros(Np,1);\r\n    Y_predict=zeros(Np,1);\r\n    X_predict=zeros(Np,1);\r\n    Y_error=zeros(Np,1);\r\n    J_obst=zeros(Np,1);\r\n    ay=zeros(Np,1);\r\n    \r\n    for i=1:1:Np\r\n        if i==Nc-1 \r\n            ay(i,1)=x(1);\r\n             % ״̬\r\n            y_dot_predict(i,1)=y_dot+T*ay(i,1);\r\n            x_dot_predict(i,1)=x_dot;\r\n            phi_predict(i,1)=phi+T*ay(i)/x_dot;\r\n            Y_predict(i,1)=Y+T*(x_dot*sin(phi)+y_dot*cos(phi));\r\n            X_predict(i,1)=X_start+T*(x_dot*cos(phi)-y_dot*sin(phi));\r\n            for j=1:1:Nobs\r\n                J_obst(i,1)=J_obst(i,1)+1/(((X_predict(i,1))-X_obstacle(j,1))^2+(Y_predict(i,1)-Y_obstacle(j,1))^2+0.000001);\r\n            end\r\n        else %if i<=5\r\n            ay(i,1)=x(2);%дǽ\r\n            y_dot_predict(i,1)=y_dot_predict(i-1,1)+T*ay(i,1);\r\n            x_dot_predict(i,1)=x_dot;\r\n            phi_predict(i,1)=phi_predict(i-1,1)+T*ay(i)/x_dot_predict(i-1,1);\r\n            Y_predict(i,1)=Y_predict(i-1)+T*(x_dot*sin(phi_predict(i-1))+y_dot_predict(i-1)*cos(phi_predict(i-1)));\r\n            X_predict(i,1)=X_predict(i-1)+T*(x_dot*cos(phi_predict(i-1))-y_dot_predict(i-1)*sin(phi_predict(i-1)));\r\n            for p=1:1:Nobs\r\n                J_obst(i,1)=J_obst(i,1)+1/(((X_predict(i,1))-X_obstacle(p,1))^2+(Y_predict(i,1)-Y_obstacle(p,1))^2+0.000001);\r\n            end\r\n%             else \r\n%             ay(i)=x(2);\r\n%             y_dot_predict(i,1)=y_dot_predict(i-1,1)+T*ay(i);\r\n%             x_dot_predict(i,1)=x_dot;\r\n%             phi_predict(i,1)=phi_predict(i-1,1)+T*ay(i)/x_dot_predict(i-1,1);\r\n%             Y_predict(i,1)=Y_predict(i-1)+T*(x_dot*sin(phi_predict(5,1))+y_dot_predict(5,1)*cos(phi_predict(5,1)));\r\n%             X_predict(i,1)=X_predict(i-1)+T*(x_dot*cos(phi_predict(5,1))-y_dot_predict(5,1)*sin(phi_predict(5,1)));\r\n%             end \r\n        end\r\n    %J_obst=J_obst+1/(((X_predict(i,1))-X_obstacle(2,1))^2+(Y_predict(i,1)-Y_obstacle(2,1))^2+0.00001);\r\n        Y_error(i,1)=Y_predict(i,1)-Yref(i,1);%ע˴YrefY_refҪֿYrefǾֲ·,Y_refΪȫ·\r\n    end \r\n        cost=cost+Y_error'*Q*Y_error+ay(1:2)'*R*ay(1:2)+S*sum(J_obst(:));\r\n% End of CostFunction\r\n"
  },
  {
    "path": "Chapter-6/chap6_LocalPlan_TrackingCtrl/ReadMe",
    "content": "Integrate local planning and path tracking in MPC\n"
  },
  {
    "path": "Chapter-6/chap6_LocalPlan_TrackingCtrl/chapt6_MPC_DynamicModel_PlanCtrl.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"chapt6_MPC_DynamicModel_PlanCtrl\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.86\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"FinalMPCModelDynamicCarsimWithPlan_1218\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [2064.0, 33.0, 1418.0, 841.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[8]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[1368.0, 664.0]\r\n\tZoomFactor\t\t[1.0]\r\n\tOffset\t\t\t[0.0, 0.0]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Mon Sep 02 21:20:38 2019\"\r\n  RTWModifiedTimeStamp\t  489359734\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:86>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"chapt6_MPC_DynamicModel_PlanCtrl\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"chapt6_MPC_DynamicModel_PlanCtrl\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"50\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Value\t\t      \"1\"\r\n      VectorParams1D\t      on\r\n      SamplingMode\t      \"Sample based\"\r\n      OutMin\t\t      \"[]\"\r\n      OutMax\t\t      \"[]\"\r\n      OutDataTypeStr\t      \"Inherit: Inherit from 'Constant value'\"\r\n      LockScale\t\t      off\r\n      SampleTime\t      \"inf\"\r\n      FramePeriod\t      \"inf\"\r\n      PreserveConstantTs      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Fcn\r\n      Expr\t\t      \"sin(u[1])\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Inputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      UseBusObject\t      off\r\n      BusObject\t\t      \"BusObject\"\r\n      NonVirtualBus\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      ModelBased\t      off\r\n      TickLabels\t      \"OneTimeTick\"\r\n      ZoomMode\t\t      \"on\"\r\n      Grid\t\t      \"on\"\r\n      TimeRange\t\t      \"auto\"\r\n      YMin\t\t      \"-5\"\r\n      YMax\t\t      \"5\"\r\n      SaveToWorkspace\t      off\r\n      SaveName\t\t      \"ScopeData\"\r\n      DataFormat\t      \"Array\"\r\n      LimitDataPoints\t      on\r\n      MaxDataPoints\t      \"5000\"\r\n      Decimation\t      \"1\"\r\n      SampleInput\t      off\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      InitialCondition\t      \"0\"\r\n      InputProcessing\t      \"Inherited\"\r\n      SampleTime\t      \"1\"\r\n      StateMustResolveToSignalObject off\r\n      CodeGenStateStorageClass \"Auto\"\r\n      HasFrameUpgradeWarning  on\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"chapt6_MPC_DynamicModel_PlanCtrl\"\r\n    Location\t\t    [2064, 33, 3482, 874]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"100\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"84\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"47\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [485, 74, 585, 136]\r\n      ZOrder\t\t      -1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"chapt6_Localplan_Trackingctrl.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Name\t\t      \"Constant\"\r\n      SID\t\t      \"50\"\r\n      Position\t\t      [290, 170, 320, 200]\r\n      ZOrder\t\t      -2\r\n      Value\t\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"Controller\"\r\n      SID\t\t      \"1\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [305, 288, 450, 392]\r\n      ZOrder\t\t      -3\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"lightBlue\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"FinalMPCControllerDynamicCarSim_1218\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux1\"\r\n      SID\t\t      \"54\"\r\n      Ports\t\t      [1, 6]\r\n      Position\t\t      [645, 143, 650, 232]\r\n      ZOrder\t\t      -4\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"6\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Fcn\r\n      Name\t\t      \"Fcn\"\r\n      SID\t\t      \"49\"\r\n      Position\t\t      [290, 105, 350, 135]\r\n      ZOrder\t\t      -5\r\n      Expr\t\t      \"180*u/3.1415926\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux\"\r\n      SID\t\t      \"48\"\r\n      Ports\t\t      [4, 1]\r\n      Position\t\t      [400, 66, 405, 144]\r\n      ZOrder\t\t      -6\r\n      ShowName\t\t      off\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux1\"\r\n      SID\t\t      \"73\"\r\n      Ports\t\t      [2, 1]\r\n      Position\t\t      [515, 305, 520, 360]\r\n      ZOrder\t\t      -7\r\n      BlockMirror\t      on\r\n      NamePlacement\t      \"alternate\"\r\n      ShowName\t\t      off\r\n      Inputs\t\t      \"2\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"PathPlan\"\r\n      SID\t\t      \"72\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [585, 345, 765, 435]\r\n      ZOrder\t\t      -8\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"[0.000000, 1.000000, 0.000000]\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"FinalMPCPlanerDynamicCarSim_1218\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope2\"\r\n      SID\t\t      \"41\"\r\n      Ports\t\t      [6]\r\n      Position\t\t      [960, 147, 1025, 228]\r\n      ZOrder\t\t      -9\r\n      Floating\t\t      off\r\n      Location\t\t      [6, 48, 1286, 759]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"6\"\r\n      ZoomMode\t\t      \"xonly\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n\taxes2\t\t\t\"%<SignalLabel>\"\r\n\taxes3\t\t\t\"%<SignalLabel>\"\r\n\taxes4\t\t\t\"%<SignalLabel>\"\r\n\taxes5\t\t\t\"%<SignalLabel>\"\r\n\taxes6\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      ShowLegends\t      off\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-1~35~-10~-20~-4~0\"\r\n      YMax\t\t      \"1~36.5~5~20~2~200\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope3\"\r\n      SID\t\t      \"53\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [655, 15, 720, 95]\r\n      ZOrder\t\t      -10\r\n      Floating\t\t      off\r\n      Location\t\t      [5, 48, 1371, 727]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      ShowLegends\t      off\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"0\"\r\n      YMax\t\t      \"19\"\r\n      SaveName\t\t      \"ScopeData2\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"42\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [795, 105, 855, 135]\r\n      ZOrder\t\t      -11\r\n      VariableName\t      \"y\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"52\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [160, 405, 220, 435]\r\n      ZOrder\t\t      -12\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      Name\t\t      \"Unit Delay\"\r\n      SID\t\t      \"57\"\r\n      Position\t\t      [695, 263, 730, 297]\r\n      ZOrder\t\t      -13\r\n      InputProcessing\t      \"Elements as channels (sample based)\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"XY Graph\"\r\n      SID\t\t      \"56\"\r\n      Ports\t\t      [2]\r\n      Position\t\t      [945, 256, 1040, 349]\r\n      ZOrder\t\t      -14\r\n      LibraryVersion\t      \"1.285\"\r\n      SourceBlock\t      \"simulink/Sinks/XY Graph\"\r\n      SourceType\t      \"XY scope.\"\r\n      ContentPreviewEnabled   off\r\n      xmin\t\t      \"0\"\r\n      xmax\t\t      \"250\"\r\n      ymin\t\t      \"-3\"\r\n      ymax\t\t      \"6\"\r\n      st\t\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"delta_f\"\r\n      SID\t\t      \"18\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [160, 295, 225, 375]\r\n      ZOrder\t\t      -15\r\n      Floating\t\t      off\r\n      Location\t\t      [5, 48, 1371, 727]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      ShowLegends\t      off\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-3\"\r\n      YMax\t\t      \"3\"\r\n      SaveName\t\t      \"ScopeData1\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      1\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [15, 0]\r\n      Branch {\r\n\tZOrder\t\t\t2\r\n\tPoints\t\t\t[50, 0; 0, 15]\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t3\r\n\tPoints\t\t\t[0, 85; 15, 0]\r\n\tBranch {\r\n\t  ZOrder\t\t  4\r\n\t  DstBlock\t\t  \"Demux1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  ZOrder\t\t  5\r\n\t  Points\t\t  [0, 90]\r\n\t  DstBlock\t\t  \"Unit Delay\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      6\r\n      SrcBlock\t\t      \"Fcn\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [5, 0]\r\n      Branch {\r\n\tZOrder\t\t\t7\r\n\tPoints\t\t\t[10, 0; 0, -25]\r\n\tBranch {\r\n\t  ZOrder\t\t  8\r\n\t  Points\t\t  [0, -20]\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  ZOrder\t\t  9\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  2\r\n\t}\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t10\r\n\tPoints\t\t\t[0, -60; -235, 0; 0, 275]\r\n\tBranch {\r\n\t  ZOrder\t\t  11\r\n\t  DstBlock\t\t  \"delta_f\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  ZOrder\t\t  12\r\n\t  Points\t\t  [0, 85]\r\n\t  DstBlock\t\t  \"To Workspace1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      13\r\n      SrcBlock\t\t      \"Constant\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [50, 0; 0, -50]\r\n      Branch {\r\n\tZOrder\t\t\t37\r\n\tPoints\t\t\t[10, 0]\r\n\tBranch {\r\n\t  ZOrder\t\t  14\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  4\r\n\t}\r\n\tBranch {\r\n\t  ZOrder\t\t  16\r\n\t  Points\t\t  [10, 0]\r\n\t}\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t17\r\n\tPoints\t\t\t[0, -20]\r\n\tDstBlock\t\t\"Mux\"\r\n\tDstPort\t\t\t3\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      18\r\n      SrcBlock\t\t      \"Mux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [35, 0]\r\n      Branch {\r\n\tZOrder\t\t\t19\r\n\tDstBlock\t\t\"CarSim S-Function\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t20\r\n\tPoints\t\t\t[0, -50]\r\n\tDstBlock\t\t\"Scope3\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      21\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      22\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      ZOrder\t\t      23\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      3\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      3\r\n    }\r\n    Line {\r\n      ZOrder\t\t      24\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      4\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      4\r\n    }\r\n    Line {\r\n      ZOrder\t\t      25\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      5\r\n      Points\t\t      [155, 0]\r\n      Branch {\r\n\tZOrder\t\t\t26\r\n\tDstBlock\t\t\"Scope2\"\r\n\tDstPort\t\t\t5\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t27\r\n\tPoints\t\t\t[0, 115]\r\n\tDstBlock\t\t\"XY Graph\"\r\n\tDstPort\t\t\t2\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      28\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      6\r\n      Points\t\t      [180, 0]\r\n      Branch {\r\n\tZOrder\t\t\t29\r\n\tDstBlock\t\t\"Scope2\"\r\n\tDstPort\t\t\t6\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t30\r\n\tPoints\t\t\t[0, 55]\r\n\tDstBlock\t\t\"XY Graph\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      31\r\n      SrcBlock\t\t      \"Controller\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-25, 0]\r\n      DstBlock\t\t      \"Fcn\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      32\r\n      SrcBlock\t\t      \"Unit Delay\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [45, 0; 0, 40]\r\n      Branch {\r\n\tZOrder\t\t\t33\r\n\tDstBlock\t\t\"Mux1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t34\r\n\tPoints\t\t\t[0, 70]\r\n\tDstBlock\t\t\"PathPlan\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      35\r\n      SrcBlock\t\t      \"PathPlan\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-10, 0; 0, -45]\r\n      DstBlock\t\t      \"Mux1\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      ZOrder\t\t      36\r\n      SrcBlock\t\t      \"Mux1\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-27, 0; 0, 5]\r\n      DstBlock\t\t      \"Controller\"\r\n      DstPort\t\t      1\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"76\"\r\n      Name\t\t      \"delta\"\r\n      Position\t\t      [262, 113, 262, 113]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -1\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"77\"\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [887, 274, 887, 274]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -2\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"78\"\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [883, 320, 883, 320]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -3\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"79\"\r\n      Name\t\t      \"y_dot\"\r\n      Position\t\t      [739, 140, 739, 140]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -4\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"80\"\r\n      Name\t\t      \"x_dot\"\r\n      Position\t\t      [736, 158, 736, 158]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -5\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"81\"\r\n      Name\t\t      \"phi\"\r\n      Position\t\t      [739, 174, 739, 174]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -6\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"82\"\r\n      Name\t\t      \"phi_dot\"\r\n      Position\t\t      [739, 189, 739, 189]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -7\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"83\"\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [735, 202, 735, 202]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -8\r\n    }\r\n    Annotation {\r\n      SID\t\t      \"84\"\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [736, 216, 736, 216]\r\n      AutoSize\t\t      on\r\n      WordWrap\t\t      off\r\n      ZOrder\t\t      -9\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-6/chap6_LocalPlan_TrackingCtrl/chapt6_MPC_DynamicModel_PlanCtrl.mdl.r2010b",
    "content": "Model {\r\n  Name\t\t\t  \"FinalMPCModelDynamicCarsimWithPlan_1218\"\r\n  Version\t\t  7.6\r\n  MdlSubVersion\t\t  0\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.85\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  SavedCharacterEncoding  \"GBK\"\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"FinalMPCModelDynamicCarsimWithPlan_1218\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  MaxMDLFileLineLength\t  120\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Wed Feb 26 21:58:24 2014\"\r\n  RTWModifiedTimeStamp\t  315350537\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:85>\"\r\n  ConfigurationManager\t  \"None\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      2\r\n      Version\t\t      \"1.10.0\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  3\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"100\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  4\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  5\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  6\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"Use local settings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"Warning\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  7\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  8\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateSLWebview\t  off\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      11\r\n\t      Version\t\t      \"1.10.0\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      12\r\n\t      Version\t\t      \"1.10.0\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"MultiInstanceERTCode\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      TargetFunctionLibrary   \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTCodeCoverageTool     \"None\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      PortableWordSizes\t      off\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.10.0\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition    \" [ 200, 85, 1080, 715 ] \"\r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    2\r\n  }\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Value\t\t      \"1\"\r\n      VectorParams1D\t      on\r\n      SamplingMode\t      \"Sample based\"\r\n      OutMin\t\t      \"[]\"\r\n      OutMax\t\t      \"[]\"\r\n      OutDataTypeStr\t      \"Inherit: Inherit from 'Constant value'\"\r\n      LockScale\t\t      off\r\n      SampleTime\t      \"inf\"\r\n      FramePeriod\t      \"inf\"\r\n      PreserveConstantTs      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Fcn\r\n      Expr\t\t      \"sin(u[1])\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Inputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      UseBusObject\t      off\r\n      BusObject\t\t      \"BusObject\"\r\n      NonVirtualBus\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      \"S-Function\"\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      ModelBased\t      off\r\n      TickLabels\t      \"OneTimeTick\"\r\n      ZoomMode\t\t      \"on\"\r\n      Grid\t\t      \"on\"\r\n      TimeRange\t\t      \"auto\"\r\n      YMin\t\t      \"-5\"\r\n      YMax\t\t      \"5\"\r\n      SaveToWorkspace\t      off\r\n      SaveName\t\t      \"ScopeData\"\r\n      LimitDataPoints\t      on\r\n      MaxDataPoints\t      \"5000\"\r\n      Decimation\t      \"1\"\r\n      SampleInput\t      off\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      FixptAsFi\t\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      X0\t\t      \"0\"\r\n      InputProcessing\t      \"Inherited\"\r\n      SampleTime\t      \"1\"\r\n      StateMustResolveToSignalObject off\r\n      RTWStateStorageClass    \"Auto\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"FinalMPCModelDynamicCarsimWithPlan_1218\"\r\n    Location\t\t    [119, 121, 1481, 778]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"100\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"75\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"47\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [485, 74, 585, 136]\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_i\"\r\n      SIMFILE\t\t      \"simfile\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Constant\r\n      Name\t\t      \"Constant\"\r\n      SID\t\t      \"50\"\r\n      Position\t\t      [290, 170, 320, 200]\r\n      Value\t\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      \"S-Function\"\r\n      Name\t\t      \"Controller\"\r\n      SID\t\t      \"1\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [335, 286, 450, 384]\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"lightBlue\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"FinalMPCControllerDynamicCarSim_1218\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux1\"\r\n      SID\t\t      \"54\"\r\n      Ports\t\t      [1, 6]\r\n      Position\t\t      [645, 143, 650, 232]\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"6\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Fcn\r\n      Name\t\t      \"Fcn\"\r\n      SID\t\t      \"49\"\r\n      Position\t\t      [290, 105, 350, 135]\r\n      Expr\t\t      \"180*u/3.1415926\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux\"\r\n      SID\t\t      \"48\"\r\n      Ports\t\t      [4, 1]\r\n      Position\t\t      [400, 66, 405, 144]\r\n      ShowName\t\t      off\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Mux\r\n      Name\t\t      \"Mux1\"\r\n      SID\t\t      \"73\"\r\n      Ports\t\t      [2, 1]\r\n      Position\t\t      [515, 305, 520, 360]\r\n      BlockMirror\t      on\r\n      NamePlacement\t      \"alternate\"\r\n      ShowName\t\t      off\r\n      Inputs\t\t      \"2\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      \"S-Function\"\r\n      Name\t\t      \"PathPlan\"\r\n      SID\t\t      \"72\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [610, 345, 730, 435]\r\n      BlockMirror\t      on\r\n      BackgroundColor\t      \"[0.000000, 1.000000, 0.000000]\"\r\n      DropShadow\t      on\r\n      FunctionName\t      \"FinalMPCPlanerDynamicCarSim_1218\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope2\"\r\n      SID\t\t      \"41\"\r\n      Ports\t\t      [6]\r\n      Position\t\t      [960, 147, 1025, 228]\r\n      Floating\t\t      off\r\n      Location\t\t      [6, 48, 1286, 759]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"6\"\r\n      ZoomMode\t\t      \"xonly\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n\taxes2\t\t\t\"%<SignalLabel>\"\r\n\taxes3\t\t\t\"%<SignalLabel>\"\r\n\taxes4\t\t\t\"%<SignalLabel>\"\r\n\taxes5\t\t\t\"%<SignalLabel>\"\r\n\taxes6\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-1~35~-10~-20~-4~0\"\r\n      YMax\t\t      \"1~36.5~5~20~2~200\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"Scope3\"\r\n      SID\t\t      \"53\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [655, 15, 720, 95]\r\n      Floating\t\t      off\r\n      Location\t\t      [5, 48, 1371, 727]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"0\"\r\n      YMax\t\t      \"19\"\r\n      SaveName\t\t      \"ScopeData2\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace\"\r\n      SID\t\t      \"42\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [795, 105, 855, 135]\r\n      VariableName\t      \"y\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"52\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [160, 405, 220, 435]\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      UnitDelay\r\n      Name\t\t      \"Unit Delay\"\r\n      SID\t\t      \"57\"\r\n      Position\t\t      [695, 263, 730, 297]\r\n      InputProcessing\t      \"Elements as channels (sample based)\"\r\n      SampleTime\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"XY Graph\"\r\n      SID\t\t      \"56\"\r\n      Ports\t\t      [2]\r\n      Position\t\t      [945, 256, 1040, 349]\r\n      LibraryVersion\t      \"1.225\"\r\n      SourceBlock\t      \"simulink/Sinks/XY Graph\"\r\n      SourceType\t      \"XY scope.\"\r\n      ShowPortLabels\t      \"FromPortIcon\"\r\n      SystemSampleTime\t      \"-1\"\r\n      FunctionWithSeparateData off\r\n      RTWMemSecFuncInitTerm   \"Inherit from model\"\r\n      RTWMemSecFuncExecute    \"Inherit from model\"\r\n      RTWMemSecDataConstants  \"Inherit from model\"\r\n      RTWMemSecDataInternal   \"Inherit from model\"\r\n      RTWMemSecDataParameters \"Inherit from model\"\r\n      GeneratePreprocessorConditionals off\r\n      xmin\t\t      \"0\"\r\n      xmax\t\t      \"250\"\r\n      ymin\t\t      \"-3\"\r\n      ymax\t\t      \"6\"\r\n      st\t\t      \"-1\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Scope\r\n      Name\t\t      \"delta_f\"\r\n      SID\t\t      \"18\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [160, 295, 225, 375]\r\n      Floating\t\t      off\r\n      Location\t\t      [5, 48, 1371, 727]\r\n      Open\t\t      off\r\n      NumInputPorts\t      \"1\"\r\n      List {\r\n\tListType\t\tAxesTitles\r\n\taxes1\t\t\t\"%<SignalLabel>\"\r\n      }\r\n      TimeRange\t\t      \"20\"\r\n      YMin\t\t      \"-3\"\r\n      YMax\t\t      \"3\"\r\n      SaveName\t\t      \"ScopeData1\"\r\n      DataFormat\t      \"StructureWithTime\"\r\n      LimitDataPoints\t      off\r\n      SampleTime\t      \"0\"\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [15, 0]\r\n      Branch {\r\n\tPoints\t\t\t[50, 0; 0, 15]\r\n\tDstBlock\t\t\"To Workspace\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 85; 15, 0]\r\n\tBranch {\r\n\t  DstBlock\t\t  \"Demux1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  Points\t\t  [0, 90]\r\n\t  DstBlock\t\t  \"Unit Delay\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Fcn\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [5, 0]\r\n      Branch {\r\n\tPoints\t\t\t[10, 0; 0, -25]\r\n\tBranch {\r\n\t  Points\t\t  [0, -20]\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  2\r\n\t}\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, -60; -235, 0; 0, 275]\r\n\tBranch {\r\n\t  DstBlock\t\t  \"delta_f\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n\tBranch {\r\n\t  Points\t\t  [0, 85]\r\n\t  DstBlock\t\t  \"To Workspace1\"\r\n\t  DstPort\t\t  1\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Constant\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [50, 0; 0, -45]\r\n      Branch {\r\n\tPoints\t\t\t[0, -5]\r\n\tDstBlock\t\t\"Mux\"\r\n\tDstPort\t\t\t4\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, -5]\r\n\tBranch {\r\n\t  Points\t\t  [20, 0]\r\n\t}\r\n\tBranch {\r\n\t  Points\t\t  [0, -20]\r\n\t  DstBlock\t\t  \"Mux\"\r\n\t  DstPort\t\t  3\r\n\t}\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Mux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [35, 0]\r\n      Branch {\r\n\tDstBlock\t\t\"CarSim S-Function\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, -50]\r\n\tDstBlock\t\t\"Scope3\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      3\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      3\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      4\r\n      DstBlock\t\t      \"Scope2\"\r\n      DstPort\t\t      4\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      5\r\n      Points\t\t      [155, 0]\r\n      Branch {\r\n\tDstBlock\t\t\"Scope2\"\r\n\tDstPort\t\t\t5\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 115]\r\n\tDstBlock\t\t\"XY Graph\"\r\n\tDstPort\t\t\t2\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Demux1\"\r\n      SrcPort\t\t      6\r\n      Points\t\t      [180, 0]\r\n      Branch {\r\n\tDstBlock\t\t\"Scope2\"\r\n\tDstPort\t\t\t6\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 55]\r\n\tDstBlock\t\t\"XY Graph\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Controller\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-75, 0; 0, -215]\r\n      DstBlock\t\t      \"Fcn\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Unit Delay\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [45, 0; 0, 40]\r\n      Branch {\r\n\tDstBlock\t\t\"Mux1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tPoints\t\t\t[0, 70]\r\n\tDstBlock\t\t\"PathPlan\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"PathPlan\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-35, 0; 0, -45]\r\n      DstBlock\t\t      \"Mux1\"\r\n      DstPort\t\t      2\r\n    }\r\n    Line {\r\n      SrcBlock\t\t      \"Mux1\"\r\n      SrcPort\t\t      1\r\n      DstBlock\t\t      \"Controller\"\r\n      DstPort\t\t      1\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"delta\"\r\n      Position\t\t      [262, 113]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [887, 274]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [883, 320]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"y_dot\"\r\n      Position\t\t      [739, 140]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"x_dot\"\r\n      Position\t\t      [736, 158]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"phi\"\r\n      Position\t\t      [739, 174]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"phi_dot\"\r\n      Position\t\t      [739, 189]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"Y\"\r\n      Position\t\t      [735, 202]\r\n    }\r\n    Annotation {\r\n      Name\t\t      \"X\"\r\n      Position\t\t      [736, 216]\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-6/chapter6_2_4.m",
    "content": "function [sys,x0,str,ts] = MPC_TrajPlanner(t,x,u,flag)\r\n% óܣõģƹ滮ڣܹϰ\r\n% 汾 V1.0MATLAB汾R2011a,Sı׼ʽ\r\n% д 2013.12.17\r\n% һθд 2014.02.24\r\n% ״̬=[y_dot,x_dot,phi,,Y,X]Ϊǰƫay\r\n\r\n\r\nswitch flag,\r\n case 0  %flag=0ʾڳʼ״̬ʱúmdlInitializeSizesгʼ\r\n  [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n  \r\n case 2  %flag=2ʾʱҪһɢ״̬\r\n  sys = mdlUpdates(t,x,u); % Update discrete states\r\n  \r\n case 3 %flag=3ʾʱҪ\r\n  sys = mdlOutputs(t,x,u); % Calculate outputs\r\n \r\n%  case 4\r\n%   sys = mdlGetTimeOfNextVarHit(t,x,u); % Get next sample time \r\n\r\n case {1,4,9} % Unused flags\r\n    % flag=1ʾʱҪ״̬΢\r\n    %flag=4ʾʱҪһβʱ䣬ֻɢϵͳãҪڱ䲽\r\n    %flag=9ʾʱϵͳҪһ˵дmdlTerminateдsys=[]Ϳ\r\n  sys = [];\r\n  \r\n otherwise\r\n  error(['unhandled flag = ',num2str(flag)]); % Error handling\r\nend\r\n% End of dsfunc.\r\n\r\n%==============================================================\r\n% Initialization\r\n%==============================================================\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n\r\n% Call simsizes for a sizes structure, fill it in, and convert it \r\n% to a sizes array.\r\n\r\nsizes = simsizes; %ģĽṹsimsizes\r\nsizes.NumContStates  = 0;%ģ״̬ĸ\r\nsizes.NumDiscStates  = 5;%ģɢ״̬ĸ\r\nsizes.NumOutputs     = 10;%Yphi,ߵϵҪԿdphi,dphi=ay/x_dot;\r\nsizes.NumInputs      = 6;%ģĸ\r\nsizes.DirFeedthrough = 1; %ģǷֱӹͨ\r\nsizes.NumSampleTimes = 1;%ģĲһ\r\nsys = simsizes(sizes); %󸳸sys\r\n\r\nx0 =[0.001;0.0001;0.0001;0.00001;0.00001;];    %״̬\r\n%global U;\r\n%U=[0];%ʼ,UΪһά\r\n% global x;\r\n% x = zeros(md.ne + md.pye + md.me + md.Hu*md.me,1);   \r\n% Initialize the discrete states.\r\nstr = [];             % Set str to an empty matrix.\r\nts  = [0.1 0];       % : [period, offset],켣滮Ϊ100ms\r\n%End of mdlInitializeSizes\r\n\t\t      \r\n%==============================================================\r\n% Update the discrete states\r\n%==============================================================\r\nfunction sys = mdlUpdates(t,x,u)\r\n  \r\nsys = x; %״̬\r\n%End of mdlUpdate.\r\n\r\n%==============================================================\r\n% Calculate outputs\r\n%==============================================================\r\nfunction sys = mdlOutputs(t,x,u)\r\n    %uCarSim\r\n    %x״̬x=[y_dot,x_dot,phi,,Y,X]\r\n    %tʱ\r\n    tic\r\n    Nx=5;%״̬ĸ \r\n    %Nu=1;%ĸΪǰƫay\r\n    %Ny=2;%ĸfalconeLTV֤ûĿЧã߿\r\n    Np =15;%Ԥⲽ\r\n    Nc=2;%Ʋ\r\n    Nobs=6;%ϰ\r\n    T=0.1;%Sample Time\r\n   \r\n    %ӿת,x_dotһǳСǷַֹĸΪ\r\n    % y_dot=u(1)/3.6-0.000000001*0.4786;%CarSimkm/hתΪm/s\r\n    y_dot=u(1)/3.6; %ٶȵλkm/hתΪm/s\r\n    x_dot=u(2)/3.6+0.0001;%CarSimkm/hתΪm/s.һСΪ˷ֹĸΪ\r\n    phi=u(3)*pi/180; %CarSimΪǶȣǶתΪ\r\n    phi_dot=u(4)*pi/180;%ٶȣǶתΪ\r\n    Y=u(5);%λΪm\r\n    X=u(6);%λΪ\r\n   \r\n%% ο켣\r\n    shape=2.4;%ƣڲο켣\r\n    dx1=25;dx2=21.95;%ûκʵ壬ֻǲ\r\n    dy1=4.05;dy2=5.7;%ûκʵ壬ֻǲ\r\n    Xs1=27.19;Xs2=56.46;%\r\n  \tX_phi=1:1:220;%Ǹٶȣx_dotģٶΪ10m/s=10*0.1=1\r\n    z1=shape/dx1*(X_phi-Xs1)-shape/2;\r\n    z2=shape/dx2*(X_phi-Xs2)-shape/2;\r\n    Y_ref=dy1/2.*(1+tanh(z1))-dy2/2.*(1+tanh(z2));\r\n   % phi_ref=atan(dy1*(1./cosh(z1)).^2*(1.2/dx1)-dy2*(1./cosh(z2)).^2*(1.2/dx2));\r\n%% ת״̬תΪ״̬\r\n    State_Initial=zeros(Nx,1);\r\n    State_Initial(1,1)=y_dot;\r\n    State_Initial(2,1)=x_dot;\r\n    State_Initial(3,1)=phi;\r\n    State_Initial(4,1)=Y;\r\n    State_Initial(5,1)=X;    \r\n%% ϰϢ\r\n    X_obstacle=zeros(Nobs,1);\r\n    X_obstacle(1:2)=30;\r\n    X_obstacle(3:4)=35;\r\n    X_obstacle(5:6)=32.5;\r\n    Y_obstacle=zeros(Nobs,1);\r\n    Y_obstacle(1)=0.5;\r\n    Y_obstacle(2)=1;\r\n    Y_obstacle(3)=0.5;\r\n    Y_obstacle(4)=1;\r\n    Y_obstacle(5)=0.5;\r\n    Y_obstacle(6)=1;\r\n    Yref=(Y_ref(1,round(State_Initial(5,1))+1:round(State_Initial(5,1))+15))';%Yrefõǽ㷨˴Ϊֲ·\r\n    Q=100*eye(Np,Np);%۾󣬶Ϊ1ԸݸԵ\r\n    R=20*eye(Nc,Nc); %\r\n    S=100;%ϺȨ    \r\n%% ʼ\r\n    %Լ\r\n    mu=0.4;%Ħϵ\r\n    g=9.8;\r\n    lb=[-mu*g;-mu*g];\r\n    ub=[mu*g;mu*g];\r\n    A=[];\r\n    b=[];\r\n    Aeq=[];\r\n    beq=[];\r\n    options = optimset('Algorithm','active-set');\r\n    [A,fval,exitflag]=fmincon(@(x)MY_costfunction(x,State_Initial,Np,Nc,Nobs,T,Yref,Q,R,S,X_obstacle,Y_obstacle),[0;0;],A,b,Aeq,beq,lb,ub,[],options);%Լ⣬ٶ\r\n%   [A,fval,exitflag]=fminbnd(@(x)MY_costfunction(x,State_Initial,Np,Nc,T,Yref,Q,R,S),lb,ub);%ֻ½ԼֲС\r\n%   [A,fval,exitflag]=fminsearch(@(x)MY_costfunction(x,State_Initial,Np,Nc,Nobs,T,Yref,Q,R,S,X_obstacle,Y_obstacle),[0;0]);%Լ⣬ٶ\r\n    fprintf('exitflag=%d\\n',exitflag);\r\n   \r\n%% \r\n% ¸ݼĿƵе״̬\r\n    y_dot_predict=zeros(Np,1);\r\n    x_dot_predict=zeros(Np,1);\r\n    phi_predict=zeros(Np,1);\r\n    Y_predict=zeros(Np,1);\r\n    X_predict=zeros(Np,1);\r\n\r\n for i=1:1:Np\r\n     if i==Nc-1 \r\n            ay(i)=A(1);\r\n             % ״̬\r\n            y_dot_predict(i,1)=State_Initial(1,1)+T*ay(i);\r\n            x_dot_predict(i,1)=State_Initial(2,1);\r\n            phi_predict(i,1)=State_Initial(3,1)+T*ay(i)/State_Initial(2,1);\r\n            Y_predict(i,1)=State_Initial(4,1)+T*(State_Initial(2,1)*sin(State_Initial(3,1))+State_Initial(1,1)*cos(State_Initial(3,1)));\r\n            X_predict(i,1)=State_Initial(5,1)+T*(State_Initial(2,1)*cos(State_Initial(3,1))-State_Initial(1,1)*sin(State_Initial(3,1)));  \r\n      else %if i<=5\r\n            ay(i)=A(2);%дǽ\r\n            y_dot_predict(i,1)=y_dot_predict(i-1,1)+T*ay(i);\r\n            x_dot_predict(i,1)=State_Initial(2,1);\r\n            phi_predict(i,1)=phi_predict(i-1,1)+T*ay(i)/x_dot_predict(i-1,1);\r\n            Y_predict(i,1)=Y_predict(i-1)+T*(State_Initial(2,1)*sin(phi_predict(i-1))+y_dot_predict(i-1)*cos(phi_predict(i-1)));\r\n            X_predict(i,1)=X_predict(i-1)+T*(State_Initial(2,1)*cos(phi_predict(i-1))-y_dot_predict(i-1)*sin(phi_predict(i-1)));\r\n      end \r\n end\r\n    Paramater_X_Y=polyfit(X_predict,Y_predict,4);\r\n    Paramater_X_PHI=polyfit(X_predict,phi_predict,4);\r\n    OutPut(1:5)=Paramater_X_Y;\r\n    OutPut(6:10)=Paramater_X_PHI;\r\n    sys=OutPut;\r\n    toc\r\n% End of mdlOutputs.\r\n %% ۺĹӺ\r\nfunction cost = MY_costfunction(x,State_Initial,Np,Nc,Nobs,T,Yref,Q,R,S,X_obstacle,Y_obstacle)\r\n    cost=0;\r\n    y_dot=State_Initial(1,1);\r\n    x_dot=State_Initial(2,1);\r\n    phi=State_Initial(3,1);\r\n    Y=State_Initial(4,1);\r\n    X_start=State_Initial(5,1);\r\n    \r\n    y_dot_predict=zeros(Np,1);\r\n    x_dot_predict=zeros(Np,1);\r\n    phi_predict=zeros(Np,1);\r\n    Y_predict=zeros(Np,1);\r\n    X_predict=zeros(Np,1);\r\n    Y_error=zeros(Np,1);\r\n    J_obst=zeros(Np,1);\r\n    ay=zeros(Np,1);\r\n    \r\n    for i=1:1:Np\r\n        if i==Nc-1 \r\n            ay(i,1)=x(1);\r\n             % ״̬\r\n            y_dot_predict(i,1)=y_dot+T*ay(i,1);\r\n            x_dot_predict(i,1)=x_dot;\r\n            phi_predict(i,1)=phi+T*ay(i)/x_dot;\r\n            Y_predict(i,1)=Y+T*(x_dot*sin(phi)+y_dot*cos(phi));\r\n            X_predict(i,1)=X_start+T*(x_dot*cos(phi)-y_dot*sin(phi));\r\n            for j=1:1:Nobs\r\n                J_obst(i,1)=J_obst(i,1)+1/(((X_predict(i,1))-X_obstacle(j,1))^2+(Y_predict(i,1)-Y_obstacle(j,1))^2+0.000001);\r\n            end\r\n        else %if i<=5\r\n            ay(i,1)=x(2);%дǽ\r\n            y_dot_predict(i,1)=y_dot_predict(i-1,1)+T*ay(i,1);\r\n            x_dot_predict(i,1)=x_dot;\r\n            phi_predict(i,1)=phi_predict(i-1,1)+T*ay(i)/x_dot_predict(i-1,1);\r\n            Y_predict(i,1)=Y_predict(i-1)+T*(x_dot*sin(phi_predict(i-1))+y_dot_predict(i-1)*cos(phi_predict(i-1)));\r\n            X_predict(i,1)=X_predict(i-1)+T*(x_dot*cos(phi_predict(i-1))-y_dot_predict(i-1)*sin(phi_predict(i-1)));\r\n            for p=1:1:Nobs\r\n                J_obst(i,1)=J_obst(i,1)+1/(((X_predict(i,1))-X_obstacle(p,1))^2+(Y_predict(i,1)-Y_obstacle(p,1))^2+0.000001);\r\n            end\r\n%             else \r\n%             ay(i)=x(2);\r\n%             y_dot_predict(i,1)=y_dot_predict(i-1,1)+T*ay(i);\r\n%             x_dot_predict(i,1)=x_dot;\r\n%             phi_predict(i,1)=phi_predict(i-1,1)+T*ay(i)/x_dot_predict(i-1,1);\r\n%             Y_predict(i,1)=Y_predict(i-1)+T*(x_dot*sin(phi_predict(5,1))+y_dot_predict(5,1)*cos(phi_predict(5,1)));\r\n%             X_predict(i,1)=X_predict(i-1)+T*(x_dot*cos(phi_predict(5,1))-y_dot_predict(5,1)*sin(phi_predict(5,1)));\r\n%             end \r\n        end\r\n    %J_obst=J_obst+1/(((X_predict(i,1))-X_obstacle(2,1))^2+(Y_predict(i,1)-Y_obstacle(2,1))^2+0.00001);\r\n        Y_error(i,1)=Y_predict(i,1)-Yref(i,1);%ע˴YrefY_refҪֿYrefǾֲ·,Y_refΪȫ·\r\n    end \r\n        cost=cost+Y_error'*Q*Y_error+ay(1:2)'*R*ay(1:2)+S*sum(J_obst(:));\r\n% End of CostFunction\r\n"
  },
  {
    "path": "Chapter-7/ReadMe",
    "content": "This folder holds simulation codes for Chapter 7\n\n* chapter7_4_2.m: Matlab code for handling stability of high-speed AGVs with MPC\n\n* chapter_7_MPC_highspeed_handlig_stability: Simulink/Carsim codes for Chapter 7\n"
  },
  {
    "path": "Chapter-7/chapter7_4_2.m",
    "content": "function [sys,x0,str,ts] =Main_CurvePathTracking_CVXGEN_Terrain(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for safe driving\r\n% envelope control of high speed autonomous vehicle\r\n% Linearized spatial bicycle vehicle dynamic model is applied.\r\n% No successive linearizarion. No two time scale of prediction horizon\r\n% Constant high speed, curve path tracking \r\n% state vector =[beta,yawrate,e_phi,s,e_y]\r\n% control input = [steer_SW]\r\n% many other parameters are also outputed for comparision.\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 15;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\n[y, e] = func_RLSFilter_Calpha_f('initial', 0.95, 10, 10);\r\n[y, e] = func_RLSFilter_Calpha_r('initial', 0.95, 10, 10);\r\n\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.m   = 1600;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g   = 9.81;\r\n    VehiclePara.hCG = 0.65;%m\r\n    VehiclePara.Lf  = 1.12;  % 1.05\r\n    VehiclePara.Lr  = 1.48;  % 1.55\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n    VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n    VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n    VehiclePara.Radius = 0.387;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 20;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ns  = 10; %  Tsplit\r\n    MPCParameters.Ts  = 0.05; % the sample time of near term\r\n    MPCParameters.Tsl = 0.2; % the sample time of long term       \r\n    MPCParameters.Nx  = 6; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 100; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 10;\r\n    CostWeights.Ddeltaf = 10;\r\n    CostWeights.deltaf  = 1; % ò\r\n    CostWeights.Wshar   = 500;\r\n    CostWeights.Wshr    = 500;\r\n\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.1/MPCParameters.Ts;     % Units: rad,0.08rad/s--4.6deg/s  \r\n    Constraints.umax    = 0.4;      % Units: rad appro.23deg\r\n    \r\n    Constraints.arlim   = 6*pi/180; % alpha_lim=6deg~ 0.1047rad\r\n    Constraints.rmax    = 1.0; % rr_max = 1rad/s    \r\n    \r\n    ar_slackMax         = 6*pi/180; % rad\r\n    rmax_slackMax       = 1.0;\r\n    Constraints.Sshmax  = [ar_slackMax; rmax_slackMax];\r\n    \r\n    Constraints.DPhimax = 60*pi/180;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % 3.0;    cross-track-error max 3m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n%     Reftraj = load('WayPoints_Alt3fromFHWA_Overall_Station_Bank.mat');\r\n    Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n    global FeedbackCorrects;\r\n    FeedbackCorrects.StatePred = zeros(6,1);\r\n    FeedbackCorrects.Ctrlopt   = 0;\r\n     \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\nglobal FeedbackCorrects;\r\n\r\n\r\nCtrl_SteerSW    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\nfwa_opt         = 0;\r\nShenvelop_hat   = [0; 0];\r\nr_ssmax         = 0;\r\nYZPM            = 0; \r\ny_zmp           = 0; \r\nLTR             = 0; \r\nVy              = 0;\r\nalphar          = 0;\r\nRoll_Shad       = 0;\r\nRoll_BaknR      = 0;\r\nStation         = 0;\r\nyawrate         = 0;\r\n\r\n% CafHat      = 0;\r\n% CarHat      = 0;\r\n% Fyf         = 0;\r\n% Fyr         = 0;\r\n% Arfa_f      = 0;\r\n% Arfa_r      = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n\r\n%     delta_f     = VehStateMeasured.delta_f;% deg-->rad    \r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad\r\n    Roll_Shad   = VehStateMeasured.Roll_Shad;%rad\r\n    Station     = VehStateMeasured.Station;\r\n    Roll        = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    Ay_CG       = ParaHAT.Ay_CG;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    Fyf         = ParaHAT.Fyf;\r\n    Fyr         = ParaHAT.Fyr;   \r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    %-----Estimate Cornering stiffness -------------------%  \r\n    %for front tire\r\n    Arfa_f = (Beta + yawrate*VehiclePara.Lf/Vel - fwa);\r\n    [yf, Calpha_f1] = func_RLSFilter_Calpha_f(Arfa_f, Fyf);\r\n    CafHat = sum(Calpha_f1);\r\n    if CafHat > -30000\r\n        CafHat = -110000;\r\n    end\r\n    %for rear tire \r\n    Arfa_r = (Beta - yawrate*VehiclePara.Lr/Vel);\r\n    [yr, Calpha_r1] = func_RLSFilter_Calpha_r(Arfa_r, Fyr);\r\n    CarHat = sum(Calpha_r1);\r\n    if CarHat > -30000\r\n        CarHat = -92000;\r\n    end    \r\n    %-----OR use constant Cornering stiffness -------------------%  \r\n    CafHat = -90000;\r\n    CarHat = -90000;\r\n    \r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n      y_zmp =  Uaug_0(2);                 \r\n%     Roll_BaknR =  Uaug_0(1);\r\n%     Uaug_0(1) = Roll_Shad;\r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');    %\r\n    else\r\n        Xm = [Vy; yawrate; Rollrate; Roll; PrjP.ey; PrjP.epsi];        \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  MPC formulation;********************%\r\n%     [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    \r\n    Np          = MPCParameters.Np;\r\n    Eymax       = zeros(Np,1);\r\n    Eymin       = zeros(Np,1);     \r\n    LM_right    = -5;\r\n    LM_middle   = 0;\r\n    Yroad_L     = -2.5;\r\n    for i =1:1:Np  % עeyǴŵ, Np = 25\r\n        Eymax(i,1) = (LM_middle - Yroad_L);\r\n        Eymin(i,1) = (LM_right - Yroad_L);             \r\n    end\r\n    [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %--- Weighting Regulation functions\r\n    [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints);\r\n\r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.x_0      = Xm;\r\n    params.um       = fwa; % measured front whee angle\r\n%     params.x_0      = Xm - 0.6*(Xm - FeedbackCorrects.StatePred);\r\n%     params.um       = fwa - 0.6*(fwa - FeedbackCorrects.Ctrlopt); \r\n    \r\n    params.As       = StateSpaceModel.As;\r\n    params.Bs1      = StateSpaceModel.Bs1;\r\n    params.Bs2      = StateSpaceModel.Bs2;\r\n    params.Al       = StateSpaceModel.Al;\r\n    params.Bl11     = StateSpaceModel.Bl11;\r\n    params.Bl12     = StateSpaceModel.Bl12;\r\n    params.Bl21     = StateSpaceModel.Bl21;\r\n    params.Bl22     = StateSpaceModel.Bl22;\r\n\r\n    params.tstl     = MPCParameters.Ts/MPCParameters.Tsl;\r\n    params.Ql       = Ql;  \r\n    params.Rdun\t    = Rdun;  \r\n    params.Wshl\t    = Wshl;      \r\n    \r\n    params.dun      = dun; \r\n    params.dul      = dul; \r\n    params.umax     = Constraints.umax;    \r\n    params.Sshmax   = Constraints.Sshmax; \r\n    \r\n    params.Uaug_0   = Uaug_0;\r\n    params.Uaug     = Uaug;\r\n    \r\n    params.Henv     = Envelope.Henv;\r\n    params.Genv     = Envelope.Genv;\r\n    \r\n    params.Hsh      = Envelope.Hsh;\r\n    params.Psh      = Envelope.Psh;\r\n    params.Gsh      = Envelope.Gsh;\r\n \r\n    params.Hyzmp    = Envelope.H_yzmp;\r\n    params.Pyzmp1   = Envelope.P_yzmp1;\r\n    params.Pyzmp2   = Envelope.P_yzmp2;\r\n    params.Gyzmp    = 1.0; % 0.7; %һصԼ    \r\n\r\n    [vars, status] = csolve(params, settings);\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0; \r\n%         for i=1:1:20\r\n%             S_opt(i)    = vars.x{i}; \r\n%             U_opt(i)    = vars.u{i}; \r\n%         end  \r\n    else\r\n        fwa_opt =  vars.u_0;\r\n        fprintf('CVXGEN converged = 0 InitialGapflag= %d\\n', InitialGapflag);                  \r\n    end\r\n    FeedbackCorrects.StatePred = vars.x_1;\r\n    FeedbackCorrects.Ctrlopt   = fwa_opt;    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    %-----------------------------------------%\r\n    e_y            = PrjP.ey;\r\n    e_psi          = PrjP.epsi; \r\n\r\n\r\n    Shenvelop_hat  = Envelope.Hsh*Xm + Envelope.Psh*Uaug_0;\r\n    r_ssmax    = Envelope.Gsh(2);\r\n\r\n    YZPM = Envelope.H_yzmp*Xm + Envelope.P_yzmp1*fwa_opt + Envelope.P_yzmp2*Uaug_0; % + VehStateMeasured.yawrate_dot*VehiclePara.Iz/(VehiclePara.m*VehiclePara.g);%\r\n    YZPM = 2*YZPM/VehiclePara.Tr;\r\n    \r\n    Fzl = ParaHAT.Fz_l1 + ParaHAT.Fz_l2;\r\n    Fzr = ParaHAT.Fz_r1 + ParaHAT.Fz_r2;\r\n    LTR = (Fzr - Fzl)./(Fzr + Fzl);\r\n\r\n    y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);\r\n%     y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g); %%%- VehiclePara.hCG*ParaHAT.Roll_accel\r\n% %     y_zmp = ParaHAT.Ay_Bf_SM*ParaHAT.Zcg_SM/VehiclePara.g  + ParaHAT.Zcg_SM.*ParaHAT.Roll - VehiclePara.Ix*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);    \r\n%     y_zmp = 2*y_zmp/VehiclePara.Tr;\r\n\r\n\r\n\r\n     \r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_y; y_zmp; YZPM; LTR; Vy;  alphar; yawrate]; %\r\n\r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/LEO_RigidbodyMPC3TurnTracking.sim",
    "content": "SIMFILE\r\nINPUT C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run305_all.par\r\nECHO C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run305_echo.par\r\nFINAL C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run305_end.par\r\nLOGFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run305_log.txt\r\nERDFILE C:\\Users\\Public\\Documents\\CarSim_Data\\Runs\\Run305.erd\r\nDLLFILE C:\\Program Files (x86)\\CarSim810_Prog\\Programs\\Solvers\\Default64\\i_s.dll\r\nEND\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/Main_StabilityCtrl.m",
    "content": "function [sys,x0,str,ts] =Main_StabilityCtrl(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for safe driving\r\n% envelope control of high speed autonomous vehicle\r\n% Linearized spatial bicycle vehicle dynamic model is applied.\r\n% No successive linearizarion. No two time scale of prediction horizon\r\n% Constant high speed, curve path tracking \r\n% state vector =[beta,yawrate,e_phi,s,e_y]\r\n% control input = [steer_SW]\r\n% many other parameters are also outputed for comparision.\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@bit.edu.cn\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 15;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\n[y, e] = func_RLSFilter_Calpha_f('initial', 0.95, 10, 10);\r\n[y, e] = func_RLSFilter_Calpha_r('initial', 0.95, 10, 10);\r\n\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.m   = 1600;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g   = 9.81;\r\n    VehiclePara.hCG = 0.65;%m\r\n    VehiclePara.Lf  = 1.12;  % 1.05\r\n    VehiclePara.Lr  = 1.48;  % 1.55\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n    VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n    VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n    VehiclePara.Radius = 0.387;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 20;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ns  = 10; %  Tsplit\r\n    MPCParameters.Ts  = 0.05; % the sample time of near term\r\n    MPCParameters.Tsl = 0.2; % the sample time of long term       \r\n    MPCParameters.Nx  = 6; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 100; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 10;\r\n    CostWeights.Ddeltaf = 10;\r\n    CostWeights.deltaf  = 1; % ò\r\n    CostWeights.Wshar   = 500;\r\n    CostWeights.Wshr    = 500;\r\n\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.1/MPCParameters.Ts;     % Units: rad,0.08rad/s--4.6deg/s  \r\n    Constraints.umax    = 0.4;      % Units: rad appro.23deg\r\n    \r\n    Constraints.arlim   = 6*pi/180; % alpha_lim=6deg~ 0.1047rad\r\n    Constraints.rmax    = 1.0; % rr_max = 1rad/s    \r\n    \r\n    ar_slackMax         = 6*pi/180; % rad\r\n    rmax_slackMax       = 1.0;\r\n    Constraints.Sshmax  = [ar_slackMax; rmax_slackMax];\r\n    \r\n    Constraints.DPhimax = 60*pi/180;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % 3.0;    cross-track-error max 3m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n%     Reftraj = load('WayPoints_Alt3fromFHWA_Overall_Station_Bank.mat');\r\n    Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n    global FeedbackCorrects;\r\n    FeedbackCorrects.StatePred = zeros(6,1);\r\n    FeedbackCorrects.Ctrlopt   = 0;\r\n     \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\nglobal FeedbackCorrects;\r\n\r\n\r\nCtrl_SteerSW    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\nfwa_opt         = 0;\r\nShenvelop_hat   = [0; 0];\r\nr_ssmax         = 0;\r\nYZPM            = 0; \r\ny_zmp           = 0; \r\nLTR             = 0; \r\nVy              = 0;\r\nalphar          = 0;\r\nRoll_Shad       = 0;\r\nRoll_BaknR      = 0;\r\nStation         = 0;\r\nyawrate         = 0;\r\n% CafHat      = 0;\r\n% CarHat      = 0;\r\n% Fyf         = 0;\r\n% Fyr         = 0;\r\n% Arfa_f      = 0;\r\n% Arfa_r      = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n\r\n%     delta_f     = VehStateMeasured.delta_f;% deg-->rad    \r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad\r\n    Roll_Shad   = VehStateMeasured.Roll_Shad;%rad\r\n    Station     = VehStateMeasured.Station;\r\n    Roll        = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    Ay_CG       = ParaHAT.Ay_CG;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    Fyf         = ParaHAT.Fyf;\r\n    Fyr         = ParaHAT.Fyr;   \r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    %-----Estimate Cornering stiffness -------------------%  \r\n    %for front tire\r\n    Arfa_f = (Beta + yawrate*VehiclePara.Lf/Vel - fwa);\r\n    [yf, Calpha_f1] = func_RLSFilter_Calpha_f(Arfa_f, Fyf);\r\n    CafHat = sum(Calpha_f1);\r\n    if CafHat > -30000\r\n        CafHat = -110000;\r\n    end\r\n    %for rear tire \r\n    Arfa_r = (Beta - yawrate*VehiclePara.Lr/Vel);\r\n    [yr, Calpha_r1] = func_RLSFilter_Calpha_r(Arfa_r, Fyr);\r\n    CarHat = sum(Calpha_r1);\r\n    if CarHat > -30000\r\n        CarHat = -92000;\r\n    end    \r\n    %-----OR use constant Cornering stiffness -------------------%  \r\n    CafHat = -90000;\r\n    CarHat = -90000;\r\n    \r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n      y_zmp =  Uaug_0(2);                 \r\n%     Roll_BaknR =  Uaug_0(1);\r\n%     Uaug_0(1) = Roll_Shad;\r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');    %\r\n    else\r\n        Xm = [Vy; yawrate; Rollrate; Roll; PrjP.ey; PrjP.epsi];        \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  MPC formulation;********************%\r\n%     [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    \r\n    Np          = MPCParameters.Np;\r\n    Eymax       = zeros(Np,1);\r\n    Eymin       = zeros(Np,1);     \r\n    LM_right    = -5;\r\n    LM_middle   = 0;\r\n    Yroad_L     = -2.5;\r\n    for i =1:1:Np  % עeyǴŵ, Np = 25\r\n        Eymax(i,1) = (LM_middle - Yroad_L);\r\n        Eymin(i,1) = (LM_right - Yroad_L);             \r\n    end\r\n    [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %--- Weighting Regulation functions\r\n    [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints);\r\n\r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.x_0      = Xm;\r\n    params.um       = fwa; % measured front whee angle\r\n%     params.x_0      = Xm - 0.6*(Xm - FeedbackCorrects.StatePred);\r\n%     params.um       = fwa - 0.6*(fwa - FeedbackCorrects.Ctrlopt); \r\n    \r\n    params.As       = StateSpaceModel.As;\r\n    params.Bs1      = StateSpaceModel.Bs1;\r\n    params.Bs2      = StateSpaceModel.Bs2;\r\n    params.Al       = StateSpaceModel.Al;\r\n    params.Bl11     = StateSpaceModel.Bl11;\r\n    params.Bl12     = StateSpaceModel.Bl12;\r\n    params.Bl21     = StateSpaceModel.Bl21;\r\n    params.Bl22     = StateSpaceModel.Bl22;\r\n\r\n    params.tstl     = MPCParameters.Ts/MPCParameters.Tsl;\r\n    params.Ql       = Ql;  \r\n    params.Rdun\t    = Rdun;  \r\n    params.Wshl\t    = Wshl;      \r\n    \r\n    params.dun      = dun; \r\n    params.dul      = dul; \r\n    params.umax     = Constraints.umax;    \r\n    params.Sshmax   = Constraints.Sshmax; \r\n    \r\n    params.Uaug_0   = Uaug_0;\r\n    params.Uaug     = Uaug;\r\n    \r\n    params.Henv     = Envelope.Henv;\r\n    params.Genv     = Envelope.Genv;\r\n    \r\n    params.Hsh      = Envelope.Hsh;\r\n    params.Psh      = Envelope.Psh;\r\n    params.Gsh      = Envelope.Gsh;\r\n \r\n    params.Hyzmp    = Envelope.H_yzmp;\r\n    params.Pyzmp1   = Envelope.P_yzmp1;\r\n    params.Pyzmp2   = Envelope.P_yzmp2;\r\n    params.Gyzmp    = 1.0; % 0.7; %һصԼ    \r\n\r\n    [vars, status] = csolve(params, settings);\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0; \r\n%         for i=1:1:20\r\n%             S_opt(i)    = vars.x{i}; \r\n%             U_opt(i)    = vars.u{i}; \r\n%         end  \r\n    else\r\n        fwa_opt =  vars.u_0;\r\n        fprintf('CVXGEN converged = 0 InitialGapflag= %d\\n', InitialGapflag);                  \r\n    end\r\n    FeedbackCorrects.StatePred = vars.x_1;\r\n    FeedbackCorrects.Ctrlopt   = fwa_opt;    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    %-----------------------------------------%\r\n    e_y            = PrjP.ey;\r\n    e_psi          = PrjP.epsi; \r\n\r\n\r\n    Shenvelop_hat  = Envelope.Hsh*Xm + Envelope.Psh*Uaug_0;\r\n    r_ssmax    = Envelope.Gsh(2);\r\n\r\n    YZPM = Envelope.H_yzmp*Xm + Envelope.P_yzmp1*fwa_opt + Envelope.P_yzmp2*Uaug_0; % + VehStateMeasured.yawrate_dot*VehiclePara.Iz/(VehiclePara.m*VehiclePara.g);%\r\n    YZPM = 2*YZPM/VehiclePara.Tr;\r\n    \r\n    Fzl = ParaHAT.Fz_l1 + ParaHAT.Fz_l2;\r\n    Fzr = ParaHAT.Fz_r1 + ParaHAT.Fz_r2;\r\n    LTR = (Fzr - Fzl)./(Fzr + Fzl);\r\n\r\n    y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);\r\n%     y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g); %%%- VehiclePara.hCG*ParaHAT.Roll_accel\r\n% %     y_zmp = ParaHAT.Ay_Bf_SM*ParaHAT.Zcg_SM/VehiclePara.g  + ParaHAT.Zcg_SM.*ParaHAT.Roll - VehiclePara.Ix*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);    \r\n%     y_zmp = 2*y_zmp/VehiclePara.Tr;\r\n\r\n\r\n\r\n     \r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_y; y_zmp; YZPM; LTR; Vy;  alphar; yawrate]; %\r\n\r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/RigidbodyMPCCurvePathTracking.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"RigidbodyMPCCurvePathTracking\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.242\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"RigidbodyMPCCurvePathTracking\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [571.0, 164.0, 1036.0, 764.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[986.0, 587.0]\r\n\tZoomFactor\t\t[1.7499999999999998]\r\n\tOffset\t\t\t[53.536046202867794, 171.0]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"leoking99\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Tue Oct 29 22:06:30 2019\"\r\n  RTWModifiedTimeStamp\t  494287587\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:242>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"RigidbodyMPCCurvePathTracking\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"RigidbodyMPCCurvePathTracking\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"100\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"RigidbodyMPCCurvePathTracking\"\r\n    Location\t\t    [571, 164, 1607, 928]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"175\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"140\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [330, 179, 430, 241]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_StabilityCtrl.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"135\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [170, 361, 180, 439]\r\n      ZOrder\t\t      30\r\n      BlockMirror\t      on\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[1 14]\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [260, 366, 500, 434]\r\n      ZOrder\t\t      12\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_StabilityCtrl\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"136\"\r\n      Position\t\t      [95, 405, 130, 435]\r\n      ZOrder\t\t      31\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [230, 295, 290, 325]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      116\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [104, 0; 0, 190]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      130\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-46, 0]\r\n      Branch {\r\n\tZOrder\t\t\t177\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t176\r\n\tPoints\t\t\t[0, -90]\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      178\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      189\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-9, 0; 0, -170]\r\n      DstBlock\t\t      \"CarSim S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/TestSymbolicModel.m",
    "content": "\r\nsyms K_phi D_phi Theta_1 Theta_2 Theta_3\r\nsyms M hCG Iz Ix Vel g Calpha_f Calpha_r lf\r\n\r\n\r\nMint = [  M         0       -M*hCG          0;\r\n          0         Iz      0               0;\r\n          -M*hCG    0       Ix+M*hCG*hCG    0\r\n          0         0       0               1];\r\n\r\nNint = [-Theta_1/Vel    M*Vel-Theta_2/Vel   0           M*g;  %0-->M*g\r\n        -Theta_2/Vel    -Theta_3/Vel        0           0;\r\n        0               -M*hCG*Vel          D_phi       K_phi-M*g*hCG;\r\n        0               0                   -1          0];\r\n\r\nF1int = [-Calpha_f; -lf*Calpha_f;  0;  0];\r\nF2int = [   0               0; \r\n            0               0;\r\n            K_phi           0;\r\n            0               0];\r\n\r\nAc_11     = -Mint\\Nint; % 4*4\r\nB1cn_11   = Mint\\F1int; % 4*1\r\nB2cn_11   = Mint\\F2int; % 4*2\r\n\r\n% K_phi       = 145330;\r\n% D_phi       = 4500;\r\n% Theta_1     = Calpha_f + Calpha_r;\r\n% Theta_2     = lf*Calpha_f - lr*Calpha_r;\r\n% Theta_3     = lf*lf*Calpha_f + lr*lr*Calpha_r;\r\n% \r\n% Gai1 = hCG*Theta_2/(Ix*Vel)- hCG*M*Vel/Ix;\r\n% Acn = [ Theta_1/(M*Vel)         Theta_2/(M*Vel)-Vel     0                0                       0   0;\r\n%         Theta_2/(Iz*Vel)        Theta_3/(Iz*Vel)        0                0                       0   0;\r\n%         hCG*Theta_1/(Ix*Vel)    Gai1                    -D_phi/Ix       (hCG*M*g-K_phi)/Ix     0   0;\r\n%         0                       0                       1               0                       0   0;\r\n%         1                       0                       0               0                       0   Vel;\r\n%         0                       1                       0               0                       0   0 ];\r\n%     \r\n% B1cn = [-Calpha_f/M;\t-lf*Calpha_f/Iz;    -hCG*Calpha_f/Ix;    0;     0; \t0]; % \r\n% B2cn = [-g,              0,                 -M*g*hCG/Ix,         0,     0, \t0;\r\n%         0,               0,                  0,                  0,     0, \t-Vel]';\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_CostWeightingRegulation_QuadSlacks.m",
    "content": "function [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints)\r\n\r\n%% ʼ\r\n    Ts      = MPCParameters.Ts;\r\n    Tsl     = MPCParameters.Tsl;\r\n    \r\n    Qephi   = CostWeights.Wephi;\r\n    Qey     = CostWeights.Wey;\r\n    RDdeltaf= CostWeights.Ddeltaf;   \r\n    Sdeltaf = CostWeights.deltaf;    \r\n    Wshar   = CostWeights.Wshar;\r\n    Wshr    = CostWeights.Wshr;\r\n\r\n    DPhimax = Constraints.DPhimax;  %  0.15 rad ==> 8.5deg\r\n    Dymax   = Constraints.Dymax;\r\n    armax   = Constraints.arlim; % 0.104rad=6deg; %0.15rad=8deg\r\n    rmax    = Constraints.rmax;    \r\n\r\n    umax    = Constraints.umax;\r\n    dumax   = Constraints.dumax;\r\n    dun     = dumax * Ts;\r\n    dul     = dumax * Tsl;\r\n    \r\n    %% Ȩӹһ\r\n    Qephi_DPhimax2  = Qephi/(DPhimax*DPhimax);\r\n    Qey_Dymax2      = Qey/(Dymax*Dymax);    \r\n    Ql              = diag([0, 0, 0, 0, Qephi_DPhimax2, Qey_Dymax2]);\r\n    \r\n    Wshr_rmax2      = Wshr/(rmax*rmax);    \r\n    Wshar_armax2    = Wshar/(armax*armax);\r\n    Wshl            = diag([Wshar_armax2, Wshr_rmax2]);\r\n   \r\n    dumax_ts2   = (dumax * dumax* Ts * Ts);% \r\n    Rdun          = RDdeltaf/dumax_ts2;\r\n%     Rdul        = Ts_Tsl * Rdun; \r\n    \r\n    Sl = Sdeltaf/(umax * umax);\r\n    \r\n    \r\nend % end of func_CostWeightingRegulation"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_FindBezierControlPointsND.m",
    "content": "% INPUT\r\n% Data: A set of \"n\" points (p1,p2,...pn).\r\n% Each point can be in N-dimension vector space\r\n% % (i.e. points to be approximated by Cubic Bezier Curve\r\n%       e.g. p for 3D p=[0   5   0;      % p1\r\n%                        1   5   0.5;    % p2\r\n%                        1.3 4.5 1;      % p3\r\n%                        2   5   2]      % p4\r\n% ptype(optional arg): parameterization type, defualt is chord-length\r\n% parameterization. user can pass 'u' or 'uniform', for uniform parameterization.\r\n\r\n% OUTPUT\r\n% Four Control Points: P0, P1, P2, P3, each in N-dimension space\r\n%  parameterized values i.e. t (optional)\r\n\r\n% OBJECTIVE\r\n% We want to find control points of Bezier Curve that fit the data\r\n% p.\r\n\r\n% SOLUTION\r\n% Least Square Method using specified Parameterization (Chord-length\r\n% defualt)\r\n% (P0 & P3) are end points of a bezier curve segment. So they\r\n% are taken equal to first and last point of data. \r\n% (P1 & P2) are obtained by partially differeciating the Sum of Square\r\n% distance between original data and parametric curve w.r.t P1 & P2 and then\r\n% solving for two unknowns P1 & P2.\r\n\r\nfunction [P0, P1, P2, P3, tout]= func_FindBezierControlPointsND(p,varargin)\r\n\r\n%%% Default Values %%%\r\nptype='';\r\ndefaultValues = {ptype};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[ptype] = deal(defaultValues{:});\r\n%%%------------------------------\r\n\r\nn=size(p,1);              % number of rows in p\r\n\r\nif (strcmpi(ptype,'u') || strcmpi(ptype,'uniform') )\r\n    [t]=linspace(0,1,n);      % uniform parameterized values (normalized b/w 0 to 1)\r\nelse\r\n    [t]=ChordLengthNormND(p); % chord-length parameterized values (normalized b/w 0 to 1)\r\nend\r\n\r\nP0=p(1,:);       % (at t=0 => P0=p1)\r\nP3=p(n,:);       % (at t=1 => P3=pn)\r\n\r\nif (n==1)      % if only one value in p\r\n   P1=P0;      % P1=P0\r\n   P2=P0;      % P2=P0\r\n   \r\nelseif (n==2)  % if only two values in p\r\n   P1=P0;      % P1=P0\r\n   P2=P3;      % P2=P3\r\n   \r\nelseif (n==3)  % if only three values in p\r\n   P1=p(2,:);    % middle point is P1\r\n   P2=p(2,:);    % middle point is P2\r\n\r\nelse\r\n    \r\n   A1=0;\tA2=0;\tA12=0;\tC1=0;\tC2=0; %initialization\r\n    for i=2:n-1 \r\n%    for i=1:n    %it will give same CPs as   i=2:n-1   \r\n      B0 = (1-t(i))^3            ;        % Bezeir Basis\r\n      B1 = ( 3*t(i)*(1-t(i))^2 ) ;\r\n      B2 = ( 3*t(i)^2*(1-t(i)) ) ;\r\n      B3 = t(i)^3                ;\r\n      \r\n      A1  = A1 +  B1^2;\r\n      A2  = A2 +  B2^2;\r\n      A12 = A12 + B1*B2;\r\n      C1 = C1 + B1*( p(i,:) - B0*P0 - B3*P3 );\r\n      C2 = C2 + B2*( p(i,:) - B0*P0 - B3*P3 );\r\n      \r\n   end\r\n   \r\n   DENOM=(A1*A2-A12*A12);       % common denominator for all points\r\n   if(DENOM==0)\r\n       P1=P0;\r\n       P2=P3;\r\n   else\r\n       P1=(A2*C1-A12*C2)/DENOM;\r\n       P2=(A1*C2-A12*C1)/DENOM;\r\n   end\r\n   \r\nend            % END of if-elseif-else conditon\r\n\r\nif(nargout==5) % if number of output argument=1 \r\n    tout=t;\r\nend\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_LocalControlInput_TwoTimeScales.m",
    "content": "function [ U1_Index, U1] = func_LocalControlInput_TwoTimeScales(MPCParameters, VehiclePara, index, fwa)\r\n\r\n%*********** Parameters Initialization *************************% \r\n    L       = VehiclePara.L;   % \r\n    Np      = MPCParameters.Np;% Ԥʱ\r\n    Ns      = MPCParameters.Ns; % Tsplit\r\n    Ts      = MPCParameters.Ts; % Set the sample time of near term\r\n    Tsl     = MPCParameters.Tsl;% Set the sample time of long term   \r\n\r\n%     U1_0    = fwa(index+1);\r\n%     TScale  = Tsl/Ts;\r\n%     U1      = zeros(Np+1,1);\r\n%     U1_Index = zeros(Np+1,1);\r\n%     for i = 1:1:Np+1\r\n%         if i <= Ns  % u0~u_{Ns-1}\r\n%             U1_Index(i)  = index+i;\r\n%             U1(i)       = fwa(index+i);\r\n%         else\r\n%             temp        = TScale*(i-Ns)+Ns;\r\n%             U1_Index(i)  = index+temp;\r\n%             U1(i)       = fwa(index+temp);     \r\n%         end\r\n%     end  \r\n\r\n    U1          = zeros(Np+1,1);\r\n    U1_Index    = zeros(Np+1,1);\r\n    for i = 1:1:Np+1\r\n        U1_Index(i)  = index+i;\r\n        U1(i)        = fwa(index+i);        \r\n    end\r\n\r\n    \r\nend"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_RLSFilter_Calpha_f.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_f(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_f, Num_f, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_f: is also called the \"forgetting\" exponential weight factor\r\n%     Num_f is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_f B_f lambda_f  Num_f  Rinv_f  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_f = d;\r\n%         delta = delta_n;\r\n        Num_f = FIR_Num;\r\n        Rinv_f = delta_n*eye(Num_f);\r\n        F_f = zeros(Num_f,1);\r\n        B_f = zeros(Num_f,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_f:-1:2\r\n            F_f(J) = F_f(J-1);\r\n        end;\r\n        F_f(1) = f;\r\n        % Perform the convolution\r\n        y= F_f'*B_f;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_f*F_f/(lambda_f + F_f'*Rinv_f*F_f);\r\n        % Update Rinv_f\r\n        Rinvn = (Rinv_f - K*F_f'*Rinv_f)/lambda_f;\r\n        % Update the filter coefficients\r\n        B_f = B_f + K*error;\r\n        Bout = B_f;\r\n        Rinv_f = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_RLSFilter_Calpha_r.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_r(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_r, Num_r, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_r: is also called the \"forgetting\" exponential weight factor\r\n%     Num_r is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_r B_r lambda_r  Num_r  Rinv_r  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_r = d;\r\n%         delta = delta_n;\r\n        Num_r = FIR_Num;\r\n        Rinv_r = delta_n*eye(Num_r);\r\n        F_r = zeros(Num_r,1);\r\n        B_r = zeros(Num_r,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_r:-1:2\r\n            F_r(J) = F_r(J-1);\r\n        end;\r\n        F_r(1) = f;\r\n        % Perform the convolution\r\n        y= F_r'*B_r;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_r*F_r/(lambda_r + F_r'*Rinv_r*F_r);\r\n        % Update Rinv_r\r\n        Rinvn = (Rinv_r - K*F_r'*Rinv_r)/lambda_r;\r\n        % Update the filter coefficients\r\n        B_r = B_r + K*error;\r\n        Bout = B_r;\r\n        Rinv_r = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated.m",
    "content": "function [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters, VehiclePara, WayPoints_Index, WayPoints_Collect, VehStateMeasured)\r\n%***************************************************************%\r\n%  PrjP\r\n% ҵȫ·Ͼ복ĵ\r\n% ΣݲͬĲsѡһЩвο㲢תϵ¡οϢ[s,x,y,bank]\r\n% ٴΣԳϵµx,yBezierֵ߲ĺǺʡ4\r\n% ͬʱԵ·Ĳsϼ\r\n% 󣬽οĲRefP, RefUUaug\r\n\r\n% Input:\r\n% MPCParameters\r\n% WayPoints_Index\r\n% WayPoints_Collect\r\n% VehStateMeasured\r\n% \r\n% Output:\r\n% WPIndex \r\n%     > 0Normal, WPIndex = index_min;\r\n%     0:error,index_min<1\r\n%     -1: index_min = WPNum,ȫ·ľͷͣ\r\n\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My homepage: https://sites.google.com/site/kailiumiracle/  \r\n%***************************************************************%\r\n\r\n%*********** Parameters Initialization *************************% \r\n    L       = VehiclePara.L;   % \r\n    Np      = MPCParameters.Np;% Ԥʱ\r\n    Ns      = MPCParameters.Ns; % Tsplit\r\n    Ts      = MPCParameters.Ts; % Set the sample time of near term\r\n    Tsl     = MPCParameters.Tsl;% Set the sample time of long term   \r\n\r\n    %------Measured or Estimated vehicle status\r\n    Vel     = VehStateMeasured.x_dot;   % 20; % \r\n    PosX    = VehStateMeasured.X;\r\n    PosY    = VehStateMeasured.Y;\r\n    PosPsi  = VehStateMeasured.phi;      \r\n    Roll_Shad = VehStateMeasured.Roll_Shad;%rad\r\n%     Ax      = VehStateMeasured.Ax;\r\n%     fwa     = VehStateMeasured.fwa; \r\n    \r\n%*********** WaypointData2VehicleCoords ************************% \r\n    ds          = 0.1;%m\r\n    WPNum       = length(WayPoints_Collect(:,1));\r\n    \r\n    %--------ҵο·Ͼ복ĵ--------------------------%  \r\n    Dist_MIN    = 1000;\r\n    index_min   = 0;\r\n    for i=WayPoints_Index:1:WPNum \r\n        deltax  = WayPoints_Collect(i,2) - PosX;\r\n        deltay  = WayPoints_Collect(i,3) - PosY;\r\n        Dist    = sqrt(power(deltax,2) + power(deltay,2)); %·㵽ĵľ\r\n        if Dist < Dist_MIN\r\n            Dist_MIN = Dist; \r\n            index_min = i;\r\n        end\r\n    end\r\n    if (index_min < 1) \r\n        WPIndex = -1; %ûҵ򡣡\r\n    else if ( index_min >= WPNum)\r\n            WPIndex = -2; %ûҵ򡣡\r\n        else\r\n            WPIndex = index_min;\r\n        end\r\n    end\r\n    \r\n\r\n    if( WPIndex > 0 )   % ҵ\r\n    %% ѡͶӰ㣬 ȫ·ѡο㣬ת¡ͬʱѡsͶӦBank angle        \r\n        %--------------ͨͶӰ--------------------------%\r\n        [PPx,PPy,ey]=func_GetProjectPoint(WayPoints_Collect(index_min,2),... \r\n                                            WayPoints_Collect(index_min,3),... \r\n                                            WayPoints_Collect(index_min+1,2),... \r\n                                            WayPoints_Collect(index_min+1,3),... \r\n                                            PosX,... \r\n                                            PosY);\r\n        Dy          = WayPoints_Collect(index_min+1,3) - WayPoints_Collect(index_min,3);\r\n        Dx          = WayPoints_Collect(index_min+1,2) - WayPoints_Collect(index_min,2);\r\n        Psi0        = atan2(Dy, Dx);  \r\n        epsi        = Psi0 - PosPsi;\r\n        \r\n        PrjP.ey     = -ey;\r\n        PrjP.epsi   = -epsi;        \r\n        PrjP.Velr   = Vel;                                        \r\n        PrjP.xr     = PPx;\r\n        PrjP.yr     = PPy;\r\n        PrjP.psir   = Psi0;\r\n%         Kprj        = 0; Ĭ ͶӰΪ㣬Ϊһֱ\r\n        PrjP.fwar   = 0; %atan(Kprj*L);  \r\n\r\n        %-------------------i=1:Ns--ݳȫֲο·ѡο-------%\r\n        Global_x        = [];\r\n        Global_y        = [];  % ȫ·ѡ·      \r\n        Local_Sx        = [];\r\n        Local_Sy        = [];\r\n        Local_SS        = [];\r\n        Local_SB        = []; %Զʱ\r\n        StepLength_S    = Vel * Ts *  (Ns+1);% һΪʱ׼\r\n        Ns_index        = index_min; \r\n        \r\n%         %--index_min  index_min+1 ֮ͶӰ\r\n%         deltax          = PPx - PosX;\r\n%         deltay          = PPy - PosY; \r\n%         CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n%         CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi);  \r\n%         Local_Sx        = [Local_Sx; CarCoord_x];\r\n%         Local_Sy        = [Local_Sy; CarCoord_y];           \r\n%         Global_x        = [Global_x; PPx];\r\n%         Global_y        = [Global_y; PPy];\r\n%         \r\n%         Local_SS        = [Local_SS; WayPoints_Collect(i,7)];\r\n%         Local_SB        = [Local_SB; WayPoints_Collect(i,8)];       \r\n%         %--index_min+1 \r\n%         deltax          = WayPoints_Collect(index_min+1,2) - PosX;\r\n%         deltay          = WayPoints_Collect(index_min+1,3) - PosY;\r\n%         CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n%         CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi);    \r\n%         Local_Sx        = [Local_Sx; CarCoord_x];\r\n%         Local_Sy        = [Local_Sy; CarCoord_y];\r\n%         Global_x        = [Global_x; WayPoints_Collect(index_min+1,2)];\r\n%         Global_y        = [Global_y; WayPoints_Collect(index_min+1,3)];\r\n%         \r\n        tempDx          = WayPoints_Collect(index_min+1,2) - PPx;\r\n        tempDy          = WayPoints_Collect(index_min+1,3) - PPy;\r\n        Dist_1          = sqrt(power(tempDx,2) + power(tempDy,2)); %·㵽ͶӰľ \r\n\r\n        for i=index_min:1:WPNum %ڲο·ѡο,ͨתתϵ\r\n            Global_x        = [Global_x; WayPoints_Collect(i,2) ];\r\n            Global_y        = [Global_y; WayPoints_Collect(i,3) ];  %ȡȫ·\r\n            \r\n            deltax          = WayPoints_Collect(i,2) - PosX;\r\n            deltay          = WayPoints_Collect(i,3) - PosY;\r\n            CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n            CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi); % ȫ·תֲ              \r\n            Local_Sx        = [Local_Sx; CarCoord_x];\r\n            Local_Sy        = [Local_Sy; CarCoord_y];  %洢ֲµĵ \r\n    \r\n            \r\n            Local_SS        = [Local_SS; WayPoints_Collect(i,7)];\r\n            Local_SBL       = [Local_SB; WayPoints_Collect(i,8)];\r\n            Local_SBR       = [Local_SB; WayPoints_Collect(i,9)];\r\n            \r\n            Ns_index        = i-1;            \r\n            Dist_SumS       = Dist_1 + WayPoints_Collect(i,7) - WayPoints_Collect(index_min+1,7);  \r\n            if(Dist_SumS >= StepLength_S)\r\n                break;\r\n            end            \r\n        end % end of   for I=index_min+1:1:WPNum           \r\n         \r\n        %------------Ns:Np---------%\r\n        Local_Lx        = [];\r\n        Local_Ly        = [];\r\n        Local_LS        = [];\r\n        Local_LB        = [];\r\n        StepLength_L    = Vel * Tsl * (Np-Ns+1);% һΪʱ׼\r\n        Dist_SumL       = 0;      %\r\n        for i=Ns_index:1:WPNum %ڲο·ѡο,ͨתתϵ\r\n            Global_x        = [Global_x; WayPoints_Collect(i,2) ];\r\n            Global_y        = [Global_y; WayPoints_Collect(i,3) ];       \r\n            \r\n            deltax          = WayPoints_Collect(i,2) - PosX;\r\n            deltay          = WayPoints_Collect(i,3) - PosY;\r\n            CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n            CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi); % תֲ             \r\n            Local_Lx        = [Local_Lx; CarCoord_x];\r\n            Local_Ly        = [Local_Ly; CarCoord_y]; % תֲ \r\n  \r\n            \r\n            Local_LS        = [Local_LS; WayPoints_Collect(i,7)];\r\n            Local_LBL       = [Local_LB; WayPoints_Collect(i,8)];\r\n            Local_LBR       = [Local_LB; WayPoints_Collect(i,9)];\r\n            \r\n            Dist_SumL       = WayPoints_Collect(i,7) - WayPoints_Collect(Ns_index, 7 );\r\n            if(Dist_SumL >= StepLength_L)\r\n                break;\r\n            end  \r\n        end % end of   for i=Ns_index+1:1:WPNum   \r\n        \r\n        %%\r\n        %------------ʽ------------%\r\n        if(Dist_SumS < StepLength_S) || (Dist_SumL < StepLength_L)\r\n           WPIndex = 0; %ûҵ򡣡 % reaching the end ... %--ûпȫ·󼸸ʱ걸пܻᱨ           \r\n        else\r\n             %----Զ̲BezierϣŵڿԶ-----%\r\n            MatS(:,1)=Local_Sx; \r\n            MatS(:,2)=Local_Sy;             \r\n            [ps0,ps1,ps2,ps3,ts] = func_FindBezierControlPointsND(MatS,'u'); %uniform parameterization\r\n            Scale                = round(Vel*Ts/ds);\r\n            tlocS                = linspace(0,1,Scale*(Ns+1)+1);   %㵽յȾ=0.1m,Ns+1ΣScale*Ns+1+1\r\n            MatLocalInterpS      = func_bezierInterp( ps0, ps1, ps2, ps3,tlocS);   % ֵ߲õ\r\n            \r\n            MatSB(:,1)      = Local_SS; \r\n            MatSB(:,2)      = Local_SBR;             \r\n            [psb0,psb1,psb2,psb3,tsb] = func_FindBezierControlPointsND(MatSB,'u'); %uniform parameterization\r\n            tlocS                = linspace(0,1,Ns+2);   %㵽յȾ,Np+1ΣNp+2\r\n            MatLocalInterpSB     = func_bezierInterp( psb0,psb1,psb2,psb3,tlocS);   % ֵ߲õ            \r\n            \r\n            Bezier_Sx       = zeros(Ns,1);\r\n            Bezier_Sy       = zeros(Ns,1);\r\n            Bezier_Spsi     = zeros(Ns,1);\r\n            Bezier_SK       = zeros(Ns,1);\r\n            Bezier_Sphi_t   = zeros(Ns,1);            \r\n            for i = 2:1:length(MatLocalInterpSB(:,1))-1\r\n                Bezier_Sx(i-1)    = MatLocalInterpS(Scale*(i-1),1);\r\n                Bezier_Sy(i-1)    = MatLocalInterpS(Scale*(i-1),2);\r\n                tempDx            = MatLocalInterpS(Scale*(i-1)+1,1) - MatLocalInterpS(Scale*(i-1),1);\r\n                tempDy            = MatLocalInterpS(Scale*(i-1)+1,2) - MatLocalInterpS(Scale*(i-1),2);\r\n                Bezier_Spsi(i-1)  = atan2(tempDy, tempDx);\r\n                \r\n%                 Bezier_SK(i-1)    = func_CalPathCurve(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,2));      % YC\r\n%  \r\n                Bezier_SK(i-1)    = func_CalPathCurve_Patent(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n                                       MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n                                       MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n                                       MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n                                       MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n                                       MatLocalInterpS(Scale*(i-1)+1,2));      % YC\r\n%                 \r\n%                 Bezier_SK(i-1)    = func_CalPathCurve_YU(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,2));      % YC\r\n                                   \r\n                Bezier_Sphi_t(i-1) = MatLocalInterpSB(i,2);                  \r\n            end % end of  for i = 2:1:length(MatLocalInterp(:,1))-1\r\n            \r\n\r\n            %----Գ Bezier-----%\r\n            MatL(:,1)=Local_Lx; \r\n            MatL(:,2)=Local_Ly;             \r\n            [pL0,pL1,pL2,pL3,tL] = func_FindBezierControlPointsND(MatL,'u'); %uniform parameterization\r\n            Scale                = round(Vel*Tsl/ds);\r\n            tlocL                = linspace(0,1,Scale*(Np-Ns+1)+1);   %㵽յȾ,Np-Ns+1ΣScale*Np-Ns+1+1=Scale(Np-Ns)+11\r\n            MatLocalInterpL      = func_bezierInterp( pL0, pL1, pL2, pL3,tlocL);   % ֵ߲õ\r\n            \r\n            MatLB(:,1)=Local_LS; \r\n            MatLB(:,2)=Local_LBR;             \r\n            [ps0,ps1,ps2,ps3,tL] = func_FindBezierControlPointsND(MatLB,'u'); %uniform parameterization\r\n            tlocL                = linspace(0,1,Np-Ns+2);   %㵽յȾ,Np+1ΣNp+2\r\n            MatLocalInterpLB     = func_bezierInterp( ps0, ps1, ps2, ps3,tlocL);   % ֵ߲õ    \r\n            \r\n            Bezier_Lx       = zeros(Np-Ns,1);\r\n            Bezier_Ly       = zeros(Np-Ns,1);\r\n            Bezier_Lpsi     = zeros(Np-Ns,1);\r\n            Bezier_LK       = zeros(Np-Ns,1);\r\n            Bezier_Lphi_t   = zeros(Np-Ns,1);  \r\n            for i = 2:1:length(MatLocalInterpLB(:,1))-1\r\n                Bezier_Lx(i-1)     = MatLocalInterpL(Scale*(i-1),1);\r\n                Bezier_Ly(i-1)     = MatLocalInterpL(Scale*(i-1),2);\r\n                tempDx             = MatLocalInterpL(Scale*(i-1)+1,1) - MatLocalInterpL(Scale*(i-1),1);\r\n                tempDy             = MatLocalInterpL(Scale*(i-1)+1,2) - MatLocalInterpL(Scale*(i-1),2);\r\n                Bezier_Lpsi(i-1)   = atan2(tempDy, tempDx);\r\n                \r\n%                 Bezier_LK(i-1)     = func_CalPathCurve(MatLocalInterpL(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpL(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpL(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpL(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,2));      % YC\r\n%                                    \r\n                Bezier_LK(i-1)     = func_CalPathCurve_Patent(MatLocalInterpL(Scale*(i-1)-1,1),... \t% XA\r\n                                       MatLocalInterpL(Scale*(i-1)-1,2),...    % YA\r\n                                       MatLocalInterpL(Scale*(i-1),1),...      % XB\r\n                                       MatLocalInterpL(Scale*(i-1),2),...      % YB\r\n                                       MatLocalInterpL(Scale*(i-1)+1,1),...    % XC\r\n                                       MatLocalInterpL(Scale*(i-1)+1,2));      % YC\r\n%                                    \r\n%                 Bezier_LK(i-1)     = func_CalPathCurve_YU(MatLocalInterpL(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpL(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpL(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpL(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,2));      % YC                   \r\n                                   \r\n                Bezier_Lphi_t(i-1) = MatLocalInterpLB(i,2);\r\n                \r\n            end % end of  for i = 2:1:length(MatLocalInterp(:,1))-1\r\n\r\n\r\n            \r\n    %%\r\n        RefP    = cell(Np,1);        \r\n        RefU    = cell(Np,1); \r\n        for i = 1:1:Np\r\n            if i <= Ns\r\n               RefU{i,1} = atan(Bezier_SK(i)*L);                 \r\n               RefP{i,1} = [Bezier_Sx(i);\r\n                            Bezier_Sy(i);\r\n                            Bezier_Spsi(i)]; \r\n            else\r\n               RefU{i,1} = atan(Bezier_LK(i-Ns)*L); \r\n               RefP{i,1} = [Bezier_Lx(i-Ns);\r\n                            Bezier_Ly(i-Ns);\r\n                            Bezier_Lpsi(i-Ns)];                     \r\n            end\r\n        end  \r\n        \r\n\r\n        Uaug    = cell(Np,1);  \r\n        \r\n        Uaug_0  = [0;0]; % [MatLocalInterpSB(1,2); 0];  %          \r\n        for i = 1:1:Np %ǵ·ʺǵӰ\r\n            if i <= Ns                     \r\n                Uaug{i,1} = [0;0]; \r\n            else                   \r\n                Uaug{i,1} = [0;0]; \r\n            end\r\n        end  \r\n\r\n%         Uaug_0  = [0; Bezier_SK(1)];  %  [0;0]; %      \r\n%         for i = 1:1:Np %ֻǵ·\r\n%             if i <= Ns                     \r\n%                 Uaug{i,1} = [0; Bezier_SK(i)];\r\n%             else                   \r\n%                 Uaug{i,1} = [0; Bezier_LK(i-Ns)];\r\n%             end\r\n%         end  \r\n\r\n%         Uaug_0  = [Roll_Shad; 0];  %  [MatLocalInterpSB(1,2); 0];  %  \r\n%         for i = 1:1:Np %ֻ·ǵӰ\r\n%             if i <= Ns                     \r\n%                 Uaug{i,1} = [Bezier_Sphi_t(i); 0];\r\n%             else                   \r\n%                 Uaug{i,1} = [Bezier_Lphi_t(i-Ns); 0];\r\n%             end\r\n%         end  \r\n        \r\n%         Uaug_0  = [Roll_Shad; Bezier_SK(1)];  %[MatLocalInterpSB(1,2); Bezier_SK(1)];  %      \r\n%         for i = 1:1:Np %ǵ·ʺǵӰ\r\n%             if i <= Ns                     \r\n%                 Uaug{i,1} = [Bezier_Sphi_t(i); Bezier_SK(i)];\r\n%             else                   \r\n%                 Uaug{i,1} = [Bezier_Lphi_t(i-Ns); Bezier_LK(i-Ns)];\r\n%             end\r\n%         end  \r\n\r\n        Roll_BaknR = MatLocalInterpSB(1,2);\r\n        end % end of if(Dist_SumS < StepLength_S) || (Dist_SumL < StepLength_L)\r\n        \r\n    end % end of if( WPIndex > 0 )   % ҵ\r\n\r\n% %--------Plot local points and the fitted polynomial----------------%\r\n% figure\r\n% plot(Local_Sx,Local_Sy,'b*');\r\n% hold on\r\n% plot(Local_Lx,Local_Ly,'bo');    \r\n% plot(Global_x,Global_y,'k.');  \r\n% plot(Bezier_Sx,Bezier_Sy,'r+'); \r\n% plot(Bezier_Lx,Bezier_Ly,'ro'); \r\n\r\nend % end of function \r\n\r\n\r\n%==============================================================%\r\n% sub functions\r\n%==============================================================%   \r\nfunction K=GetPathHeading(Xb,Yb,Xn,Yn)\r\n    %***Way I.Heading Angle [-pi,pi]֮ *******%\r\n    AngleY=Yn-Yb;\r\n    AngleX=Xn-Xb;\r\n    K= atan2(AngleY, AngleX);\r\n    \r\n    %***Way II. Heading Angle 0~2*pi֮ *******%\r\n%     AngleY=Yn-Yb;\r\n%     AngleX=Xn-Xb;    \r\n%     \r\n%     if Xb==Xn\r\n%         if Yn>Yb\r\n%             K=pi/2;\r\n%         else\r\n%             K=3*pi/2;\r\n%         end\r\n%     else\r\n%         if Yb==Yn\r\n%             if Xn>Xb\r\n%                 K=0;\r\n%             else\r\n%                 K=pi;\r\n%             end\r\n%         else\r\n%             K=atan(AngleY/AngleX);\r\n%         end    \r\n%     end\r\n% \r\n%     %****K,ʹ֮0~360֮*****%\r\n%    if (AngleY>0&&AngleX>0)%һ\r\n%         K=K;\r\n%     elseif (AngleY>0&&AngleX<0)||(AngleY<0&&AngleX<0)%ڶ\r\n%         K=K+pi;\r\n%     else if (AngleY<0&&AngleX>0)%\r\n%             K=K+2*pi;  \r\n%         else\r\n%             K=K;\r\n%         end\r\n%    end\r\n    \r\nend % end of function\r\n\r\nfunction [PPx,PPy,de]=func_GetProjectPoint(Xb,Yb,Xn,Yn,Xc,Yc)\r\n%-------------------------------------------------------%\r\n% de㵽ֱߵľ벻ͬ෴\r\n% 㵽ֱߵľ룺Ҹ\r\n%-------------------------------------------------------%\r\n\r\n    if Xn==Xb\r\n        x=Xn;\r\n        y=Yc;\r\n        de=Xc-Xn;\r\n    else if Yb==Yn\r\n            x=Xc;\r\n            y=Yn;\r\n            de=Yn-Yc;\r\n        else\r\n            DifX=Xn-Xb;\r\n            DifY=Yn-Yb;\r\n            Kindex=DifY/DifX;\r\n            bindex=Yn-Kindex*Xn;\r\n            \r\n            K=(-1)*1/Kindex;\r\n            b=Yc-K*Xc;\r\n            x=(bindex-b)/(K-Kindex);\r\n            y=K*x+b;\r\n            de=(Kindex*Xc+bindex-Yc)/sqrt(1+Kindex*Kindex);\r\n        end     \r\n    end\r\n    PPx=x;\r\n    PPy=y;\r\n       \r\nend\r\n\r\nfunction K=func_CalPathCurve(XA,YA,XB,YB,XC,YC)\r\n    %% ͨԲģԲĵһľ\r\n    %ֱֱߵб\r\n    if XB==XA\r\n        mr=inf;\r\n    else\r\n        mr=(YB-YA)/(XB-XA);    \r\n    end\r\n    if XC==XB\r\n        mt=inf;\r\n    else\r\n        mt=(YC-YB)/(XC-XB);    \r\n    end\r\n\r\n   %ݲͬб,mtdao=1/mt;mrsubmt=1/(2*(mr-mt));\r\n    if mr==mt\r\n        Rff=inf;\r\n    else if mt==0\r\n            if mr==inf\r\n                Rff=sqrt(power((XA-XC),2)+power((YA-YC),2))/2;\r\n            else\r\n                mrsubmt=1/(2*(mr-mt));\r\n                Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n                Yff=(YB+YA)/2-(Xff-(XB+XA)/2)/mr;\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));           \r\n            end\r\n        elseif mt==inf\r\n            if mr==0\r\n                Rff=sqrt(power((XA-XC),2)+power((YA-YC),2))/2;\r\n            else\r\n                Yff=(YB+YC)/2;\r\n                Xff=(XA+XB)/2-mr*(YC-YA)/2;\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));     \r\n            end        \r\n        else\r\n            mtdao=1/mt;\r\n            if mr==0\r\n                mrsubmt=1/(2*(mr-mt));\r\n                Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n                Yff=(YB+YC)/2-mtdao*(Xff-(XB+XC)/2);\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));            \r\n            elseif mr==inf\r\n                Yff=(YA+YB)/2;\r\n                Xff=(XB+XC)/2+mt*(YA-YC)/2;\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));\r\n            else\r\n                mrsubmt=1/(2*(mr-mt));\r\n                Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n                Yff=(YB+YC)/2-mtdao*(Xff-(XB+XC)/2);\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));  \r\n            end\r\n        end    \r\n    end\r\n    %%\r\n    %ͨжϺǵı仯жʵ\r\n    K1=GetPathHeading(XA,YA,XB,YB);\r\n    K2=GetPathHeading(XB,YB,XC,YC);\r\n    if K2>K1 %нǱʱ\r\n        Rff=Rff;\r\n    else %нǱС˳ʱ룬K2<K1\r\n        Rff=-1*Rff;\r\n    end\r\n    \r\n    K = 1/Rff;\r\nend\r\n\r\nfunction K=func_CalPathCurve_Patent(XA,YA,XB,YB,XC,YC)\r\n    %% \r\n    x_dot       = XC - XA;\r\n    y_dot       = YC - YA;\r\n    x_dotdot    = XC + XA - 2*XB;\r\n    y_dotdot    = YC + YA - 2*YB;\r\n    temp        = x_dot*x_dot + y_dot*y_dot;\r\n    K= 4*(x_dot*y_dotdot - x_dotdot*y_dot )/ power(temp, 1.5);\r\n\r\nend\r\n\r\nfunction curvature = func_CalPathCurve_YU(X1,Y1,X2,Y2,X3,Y3)\r\n    %-----------caculate the radius of the circle first \r\n    % side one  \r\n    delta_x = X2 - X1;  \r\n    delta_y = Y2 - Y1;  \r\n    a = sqrt(power(delta_x, 2.0) + power(delta_y, 2.0));  \r\n\r\n    % side two  \r\n    delta_x = X3 - X2;  \r\n    delta_y = Y3 - Y2;  \r\n    b = sqrt(power(delta_x, 2.0) + power(delta_y, 2.0));  \r\n\r\n    % side three  \r\n    delta_x = X1 - X3;  \r\n    delta_y = Y1 - Y3;  \r\n    c = sqrt(power(delta_x, 2.0) + power(delta_y, 2.0));  \r\n    CLOSE_TO_ZERO = 0.01;\r\n    if (a < CLOSE_TO_ZERO || b < CLOSE_TO_ZERO || c < CLOSE_TO_ZERO)   \r\n        curvature = 0; \r\n    end\r\n    \r\n    %------------------------semiperimeter\r\n    s = (a + b + c) / 2.0;  \r\n    K = sqrt(abs(s * (s - a) * (s - b) * (s - c)));  \r\n    curvature = 4 * K / (a * b * c);  \r\n    \r\n    %------------ determine the sign, using cross product()\r\n    % 2άռеĲǣ A x B = |A||B|Sin()\r\n    % V1(x1, y1) X V2(x2, y2) = x1y2 C y1x2  \r\n    rotate_direction = (X2 - X1) *  (Y3 - Y2) - (Y2 - Y1) * (X3 - X2);  \r\n    if(rotate_direction < 0) %ͨжϷţжSin()ķ\r\n        %Sin()<0, ˳ʱתΪ\r\n        curvature = -curvature;  \r\n    end\r\n\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_RigidbodyDynamicalModel_FOH_Extended.m",
    "content": "%***************************************************************%\r\n% LinearTireModel_WithKs_FOH\r\n% Deem Vx as constant\r\n%***************************************************************%\r\nfunction [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, Calpha_f, Calpha_r)\r\n    % generate State-space model\r\n   \r\nM       = VehiclePara.m ;\r\ng       = VehiclePara.g;%m/s^2\r\nL       = VehiclePara.L;  %a = 1.11;  \r\nlf      = VehiclePara.Lr;% 1.12;%1.05%  ת0.7m\r\nlr      = VehiclePara.Lr;% 1.48;%\r\nTr      = VehiclePara.Tr ; %m\r\nhCG     = VehiclePara.hCG;%m\r\nIx      = VehiclePara.Ix;\r\nIz      = VehiclePara.Iz;\r\n\r\nNp = MPCParameters.Np;\r\nNs = MPCParameters.Ns;\r\nNx = MPCParameters.Nx;\r\nNy = MPCParameters.Ny;\r\nTs = MPCParameters.Ts;\r\nTsl = MPCParameters.Tsl; \r\n\r\n% Np      = 25; % 0.1\r\n% Ns      = 10; % 0.05;\r\n% Nx      = 8;\r\n% Ny      = 5;\r\n% Ts      = 0.05;\r\n% Tsl     = 0.5;\r\n\r\nK_phi       = 145330;\r\nD_phi       = 4500;\r\nTheta_1     = Calpha_f + Calpha_r;\r\nTheta_2     = lf*Calpha_f - lr*Calpha_r;\r\nTheta_3     = lf*lf*Calpha_f + lr*lr*Calpha_r;\r\n\r\nGai1 = hCG*Theta_2/(Ix*Vel)- hCG*M*Vel/Ix;\r\nAcn = [ Theta_1/(M*Vel)         Theta_2/(M*Vel)-Vel     0                0                       0   0;\r\n        Theta_2/(Iz*Vel)        Theta_3/(Iz*Vel)        0                0                       0   0;\r\n        hCG*Theta_1/(Ix*Vel)    Gai1                    -D_phi/Ix       (hCG*M*g-K_phi)/Ix     0   0;\r\n        0                       0                       1               0                       0   0;\r\n        1                       0                       0               0                       0   Vel;\r\n        0                       1                       0               0                       0   0 ];\r\n    \r\nB1cn = [-Calpha_f/M;\t-lf*Calpha_f/Iz;    -hCG*Calpha_f/Ix;    0;     0; \t0]; % \r\nB2cn = [-g,              0,                 -M*g*hCG/Ix,         0,     0, \t0;\r\n        0,               0,                  0,                  0,     0, \t-Vel]';\r\n\r\n% Acn = [ Theta_1/(M*Vel)         Theta_2/(M*Vel)-Vel     0                0                       0   0;\r\n%         Theta_2/(Iz*Vel)        Theta_3/(Iz*Vel)        0                0                       0   0;\r\n%        0                        0                       0               0                       0    0;\r\n%         0                       0                       0               0                       0   0;\r\n%         1                       0                       0               0                       0   Vel;\r\n%         0                       1                       0               0                       0   0 ];\r\n%     \r\n% B1cn = [-Calpha_f/M;\t-lf*Calpha_f/Iz;    0;          0;     0; \t0]; % \r\n% B2cn = [-g,              0,                 0,         0,     0, \t0;\r\n%         0,               0,                  0,        0,     0, \t-Vel]';\r\n    \r\n    As = eye(Nx) + Ts * Acn;\r\n    Bs1 = Ts * B1cn; \r\n    Bs2 = Ts * B2cn;\r\n    \r\n    AcnTsl = Tsl*Acn;\r\n    Al = eye(Nx) + AcnTsl + 0.5*AcnTsl*AcnTsl ; %  + (AcnTsl*AcnTsl*AcnTsl)/6;\r\n\r\n    Baug    = [B1cn, B2cn];\r\n    BaugTsl = Baug*Tsl;\r\n    Gail1   = BaugTsl + 0.5*(AcnTsl * BaugTsl); % + (AcnTsl * AcnTsl * BaugTsl)/6;\r\n    Gail2   = 0.5*BaugTsl;% + (AcnTsl * BaugTsl)/6;\r\n    \r\n    B1l     = Gail1 - Gail2; \r\n    B2l     = Gail2;\r\n    Bl11    = B1l(:,1);\r\n    Bl12    = B1l(:,2:3);\r\n    Bl21    = B2l(:,1);\r\n    Bl22    = B2l(:,2:3);\r\n    \r\n    StateSpaceModel.Acn     = Acn;\r\n    StateSpaceModel.B1cn    = B1cn; \r\n    StateSpaceModel.B2cn    = B2cn; \r\n    \r\n    StateSpaceModel.As      = As;\r\n    StateSpaceModel.Bs1     = Bs1; \r\n    StateSpaceModel.Bs2     = Bs2;\r\n    \r\n    StateSpaceModel.Al      = Al;\r\n    StateSpaceModel.Bl11    = Bl11; \r\n    StateSpaceModel.Bl12    = Bl12; \r\n    StateSpaceModel.Bl21    = Bl21; \r\n    StateSpaceModel.Bl22    = Bl22; \r\n    \r\nend % end of func_SpatialDynamicalModel\r\n\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_RigidbodyModel_FOH_Matrix_ROLL.m",
    "content": "%***************************************************************%\r\n% LinearTireModel_WithKs_FOH\r\n% Deem Vx as constant\r\n%***************************************************************%\r\nfunction [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, Calpha_f, Calpha_r)\r\n    % generate State-space model\r\n   \r\nM       = VehiclePara.m ;\r\ng       = VehiclePara.g;%m/s^2\r\nL       = VehiclePara.L;  %a = 1.11;  \r\nlf      = VehiclePara.Lr;% 1.12;%1.05%  ת0.7m\r\nlr      = VehiclePara.Lr;% 1.48;%\r\nTr      = VehiclePara.Tr ; %m\r\nhCG     = VehiclePara.hCG;%m\r\nIx      = VehiclePara.Ix;\r\nIz      = VehiclePara.Iz;\r\n\r\nNp = MPCParameters.Np;\r\nNs = MPCParameters.Ns;\r\nNx = MPCParameters.Nx;\r\nNy = MPCParameters.Ny;\r\nTs = MPCParameters.Ts;\r\nTsl = MPCParameters.Tsl; \r\n\r\n% Np      = 25; % 0.1\r\n% Ns      = 10; % 0.05;\r\n% Nx      = 8;\r\n% Ny      = 5;\r\n% Ts      = 0.05;\r\n% Tsl     = 0.5;\r\n\r\n%% \r\nK_phi       = 145330;\r\nD_phi       = 4500;\r\nTheta_1     = Calpha_f + Calpha_r;\r\nTheta_2     = lf*Calpha_f - lr*Calpha_r;\r\nTheta_3     = lf*lf*Calpha_f + lr*lr*Calpha_r;\r\n\r\nIxz     = 0; %500\r\nMint = [  M         0       -M*hCG          0;\r\n          0         Iz      -Ixz            0;\r\n          -M*hCG    -Ixz    Ix+M*hCG*hCG    0\r\n          0         0       0               1];\r\n\r\nNint = [-Theta_1/Vel    M*Vel-Theta_2/Vel   0           M*g;  %0-->M*g\r\n        -Theta_2/Vel    -Theta_3/Vel        0           0;\r\n        0               -M*hCG*Vel          D_phi       K_phi-M*g*hCG;\r\n        0               0                   -1          0];\r\n\r\nF1int = [-Calpha_f; -lf*Calpha_f;  0;  0];\r\nF2int = [   0        0; \r\n            0        0;\r\n            K_phi    0; %-M*g*hCG\r\n            0        0];\r\n    \r\n% M_inv     = inv(M);\r\n% Ac_11     = M_inv*N;\r\nAc_11     = -Mint\\Nint; % 4*4\r\nB1cn_11   = Mint\\F1int; % 4*1\r\nB2cn_11   = Mint\\F2int; % 4*2\r\n\r\nAc_12     = [0 0; 0 0; 0 0; 0 0];\r\nAc_21     = [1  0    0    0;\r\n             0  1    0    0];\r\nAc_22     = [0   Vel; 0   0]; \r\n \r\nB1cn_12   = [ 0; \t0]; \r\nB2cn_12   = [ 0, \t0; \r\n              0, \t-Vel];\r\n    \r\nAcn     = [Ac_11 Ac_12; Ac_21   Ac_22];\r\nB1cn    = [B1cn_11; B1cn_12];\r\nB2cn    = [B2cn_11; B2cn_12];\r\n\r\n%% ZOH/FOH\r\n    As = eye(Nx) + Ts * Acn;\r\n    Bs1 = Ts * B1cn; \r\n    Bs2 = Ts * B2cn;\r\n    \r\n    AcnTsl = Tsl*Acn;\r\n    Al = eye(Nx) + AcnTsl + 0.5*AcnTsl*AcnTsl  + (AcnTsl*AcnTsl*AcnTsl)/6; %; % \r\n\r\n    Baug    = [B1cn, B2cn];\r\n    BaugTsl = Baug*Tsl;\r\n    Gail1   = BaugTsl + 0.5*(AcnTsl * BaugTsl)+ (AcnTsl * AcnTsl * BaugTsl)/6;%; % \r\n    Gail2   = 0.5*BaugTsl + (AcnTsl * BaugTsl)/6;%;%\r\n    \r\n    B1l     = Gail1 - Gail2; \r\n    B2l     = Gail2;\r\n    Bl11    = B1l(:,1);\r\n    Bl12    = B1l(:,2:3);\r\n    Bl21    = B2l(:,1);\r\n    Bl22    = B2l(:,2:3);\r\n    \r\n    StateSpaceModel.Acn     = Acn;\r\n    StateSpaceModel.B1cn    = B1cn; \r\n    StateSpaceModel.B2cn    = B2cn; \r\n    \r\n    StateSpaceModel.As      = As;\r\n    StateSpaceModel.Bs1     = Bs1; \r\n    StateSpaceModel.Bs2     = Bs2;\r\n    \r\n    StateSpaceModel.Al      = Al;\r\n    StateSpaceModel.Bl11    = Bl11; \r\n    StateSpaceModel.Bl12    = Bl12; \r\n    StateSpaceModel.Bl21    = Bl21; \r\n    StateSpaceModel.Bl22    = Bl22; \r\n    \r\nend % end of func_SpatialDynamicalModel\r\n\r\n"
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_SafedrivingEnvelope_SL.m",
    "content": "function [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat, EY_MAX, EY_Min)\r\n    %  Generating safe driving envelope \r\n    h       = VehiclePara.hCG;\r\n    Tr      = VehiclePara.Tr;\r\n    lf      = VehiclePara.Lf;\r\n    lr      = VehiclePara.Lr;\r\n    l       = VehiclePara.L;\r\n    M       = VehiclePara.m;       \r\n    g       = VehiclePara.g;\r\n    mu      = VehiclePara.mu;\r\n    Iz      = VehiclePara.Iz;   %IΪZתв  \r\n    Ix      = VehiclePara.Ix;   %IΪZתв  \r\n    Np      = MPCParameters.Np;\r\n    Ns      = MPCParameters.Ns;\r\n    Alphar_lim = Constraints.arlim;\r\n    \r\n    %-----------environmental envelope-------------%\r\n    Envelope.Henv  = [0   0   0   0   1     0;\r\n                      0   0   0   0   -1    0]; \r\n                  \r\n    Envelope.Genv  = cell(Np,1); \r\n    Dist_temp      = 0.8; % dw/2 + dbuffer; \r\n    for i = 1:1:Np\r\n       Envelope.Genv{i,1} = [EY_MAX(i) - Dist_temp;\r\n                             -EY_Min(i) - Dist_temp]; \r\n    end  \r\n\r\n    %-----------stable handling envelope-------------%\r\n%     for j = 1:1:Np\r\n        Envelope.Hsh  = [1/Vel   -lr/Vel    0   0    0   0;\r\n                         0         1        0   0    0   0];   \r\n        Envelope.Psh  = [0  0;  g/Vel   0];\r\n        \r\n        r_ssmax = -CarHat*Alphar_lim*(1+lr/lf)/(M*Vel);                  \r\n\r\n        Envelope.Gsh  = [Alphar_lim    r_ssmax]';                  \r\n%     end\r\n\r\n   %-----------zero moment point -------------% \r\n   Acn = StateSpaceModel.Acn;  % 8*8\r\n   B1cn = StateSpaceModel.B1cn; %8*1\r\n   B2cn = StateSpaceModel.B2cn;%8*2\r\n   \r\n%    N1 = [h/g    0            -Ix/(M*g)   0   0   0];\r\n%    N2 = [0      h*Vel/g      0           h   0   0]; %\r\n%    N3 = [h  0];\r\n\r\n   N1 = [2*h/(g*Tr)     0                   -2*(M*h*h+Ix)/(M*g*Tr)      0         0   0];\r\n   N2 = [0              2*h*Vel/(g*Tr)     0                            2*h/Tr    0   0]; %\r\n%    N3 = [2*h/Tr         0];\r\n\r\n   \r\n   H_yzmp   = N1*Acn + N2;%1*8\r\n   P_yzmp1  = N1*B1cn; %1*1\r\n   P_yzmp2  = N1*B2cn; % + N3;%1*2\r\n   \r\n   Envelope.H_yzmp  = H_yzmp;\r\n   Envelope.P_yzmp1 = P_yzmp1;\r\n   Envelope.P_yzmp2 = P_yzmp2;\r\n    \r\nend  % end of func_SafedrivingEnvelope "
  },
  {
    "path": "Chapter-7/chapter_7_MPC_highspeed_handlig_stability/func_bezierInterp.m",
    "content": "% Bezier interpolation for given four control points.\r\n% Each control point can be in N-Dimensional vector space.\r\n% Input:\r\n% P0,P1,P2,P3: four control points of bezier curve,\r\n%              control points can have any number of coordinates\r\n% t(optional arg):vector that holds paramter t values b/w 0 and 1 at which \r\n%                 bezier curve is evaluated (default 101 values between 0\r\n%                 and 1.)\r\n\r\n% Output:\r\n% Q evaluated values of bezier curves. Number of columns of Q are equal to\r\n% number of coordinates in control point. For example for 2-D, Q has two\r\n% columns. Column 1 for x value and column 2 for y values. Similarly for\r\n% 3-D, Q will have three columns\r\n\r\nfunction Q=func_bezierInterp(P0,P1,P2,P3,varargin)\r\n\r\n%%% Default Values %%%\r\nt=linspace(0,1,101); % uniform parameterization \r\ndefaultValues = {t};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[t] = deal(defaultValues{:});\r\n% % --------------------------------\r\nM=[-1  3 -3 1;\r\n    3 -6  3 0;\r\n   -3  3  0 0;\r\n    1  0  0 0];\r\nfor k=1:length(t)\r\n    Q(k,:)=[t(k)^3 t(k)^2 t(k) 1]*M*[P0;P1;P2;P3];\r\nend\r\n% % Ref: Mathematical Elements of Computer Graphics by\r\n% %      David F. Rogers and J. Alan Adams (pg. 296)\r\n% % --------------------------------\r\n% % OR\r\n% % Equation of Bezier Curve, utilizes Horner's rule for efficient computation.\r\n% % Q(t)=(-P0 + 3*(P1-P2) + P3)*t^3 + 3*(P0-2*P1+P2)*t^2 + 3*(P1-P0)*t + Px0\r\n% c3 = -P0 + 3*(P1-P2) + P3;\r\n% c2 = 3*(P0 - (2*P1)+P2); \r\n% c1 = 3*(P1 - P0);\r\n% c0 = P0;\r\n% for k=1:length(t)\r\n%     Q(k,:)=((c3*t(k)+c2)*t(k)+c1)*t(k) + c0;    \r\n% end\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------\r\n"
  },
  {
    "path": "Chapter-8/ReadMe",
    "content": "This folder holds simulation codes for Chapter 8\n\n* chapter8_3_3.m: Matlab code for path tracking considering road terrain and rollover prevention\n\n* chapter8_rollover_prevention_terrain: Simulink/Carsim codes for Chapter 8\n"
  },
  {
    "path": "Chapter-8/chapter8_3_3.m",
    "content": "function [sys,x0,str,ts] =Main_CurvePathTracking_CVXGEN_Terrain(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for safe driving\r\n% envelope control of high speed autonomous vehicle\r\n% Linearized spatial bicycle vehicle dynamic model is applied.\r\n% No successive linearizarion. No two time scale of prediction horizon\r\n% Constant high speed, curve path tracking \r\n% state vector =[beta,yawrate,e_phi,s,e_y]\r\n% control input = [steer_SW]\r\n% many other parameters are also outputed for comparision.\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 15;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\n[y, e] = func_RLSFilter_Calpha_f('initial', 0.95, 10, 10);\r\n[y, e] = func_RLSFilter_Calpha_r('initial', 0.95, 10, 10);\r\n\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.m   = 1600;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g   = 9.81;\r\n    VehiclePara.hCG = 0.65;%m\r\n    VehiclePara.Lf  = 1.12;  % 1.05\r\n    VehiclePara.Lr  = 1.48;  % 1.55\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n    VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n    VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n    VehiclePara.Radius = 0.387;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 20;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ns  = 10; %  Tsplit\r\n    MPCParameters.Ts  = 0.05; % the sample time of near term\r\n    MPCParameters.Tsl = 0.2; % the sample time of long term       \r\n    MPCParameters.Nx  = 6; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 100; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 10;\r\n    CostWeights.Ddeltaf = 10;\r\n    CostWeights.deltaf  = 1; % ò\r\n    CostWeights.Wshar   = 500;\r\n    CostWeights.Wshr    = 500;\r\n\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.1/MPCParameters.Ts;     % Units: rad,0.08rad/s--4.6deg/s  \r\n    Constraints.umax    = 0.4;      % Units: rad appro.23deg\r\n    \r\n    Constraints.arlim   = 6*pi/180; % alpha_lim=6deg~ 0.1047rad\r\n    Constraints.rmax    = 1.0; % rr_max = 1rad/s    \r\n    \r\n    ar_slackMax         = 6*pi/180; % rad\r\n    rmax_slackMax       = 1.0;\r\n    Constraints.Sshmax  = [ar_slackMax; rmax_slackMax];\r\n    \r\n    Constraints.DPhimax = 60*pi/180;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % 3.0;    cross-track-error max 3m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n%     Reftraj = load('WayPoints_Alt3fromFHWA_Overall_Station_Bank.mat');\r\n    Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n    global FeedbackCorrects;\r\n    FeedbackCorrects.StatePred = zeros(6,1);\r\n    FeedbackCorrects.Ctrlopt   = 0;\r\n     \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\nglobal FeedbackCorrects;\r\n\r\n\r\nCtrl_SteerSW    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\nfwa_opt         = 0;\r\nShenvelop_hat   = [0; 0];\r\nr_ssmax         = 0;\r\nYZPM            = 0; \r\ny_zmp           = 0; \r\nLTR             = 0; \r\nVy              = 0;\r\nalphar          = 0;\r\nRoll_Shad       = 0;\r\nRoll_BaknR      = 0;\r\nStation         = 0;\r\nyawrate         = 0;\r\n\r\n% CafHat      = 0;\r\n% CarHat      = 0;\r\n% Fyf         = 0;\r\n% Fyr         = 0;\r\n% Arfa_f      = 0;\r\n% Arfa_r      = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n\r\n%     delta_f     = VehStateMeasured.delta_f;% deg-->rad    \r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad\r\n    Roll_Shad   = VehStateMeasured.Roll_Shad;%rad\r\n    Station     = VehStateMeasured.Station;\r\n    Roll        = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    Ay_CG       = ParaHAT.Ay_CG;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    Fyf         = ParaHAT.Fyf;\r\n    Fyr         = ParaHAT.Fyr;   \r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    %-----Estimate Cornering stiffness -------------------%  \r\n    %for front tire\r\n    Arfa_f = (Beta + yawrate*VehiclePara.Lf/Vel - fwa);\r\n    [yf, Calpha_f1] = func_RLSFilter_Calpha_f(Arfa_f, Fyf);\r\n    CafHat = sum(Calpha_f1);\r\n    if CafHat > -30000\r\n        CafHat = -110000;\r\n    end\r\n    %for rear tire \r\n    Arfa_r = (Beta - yawrate*VehiclePara.Lr/Vel);\r\n    [yr, Calpha_r1] = func_RLSFilter_Calpha_r(Arfa_r, Fyr);\r\n    CarHat = sum(Calpha_r1);\r\n    if CarHat > -30000\r\n        CarHat = -92000;\r\n    end    \r\n    %-----OR use constant Cornering stiffness -------------------%  \r\n    CafHat = -90000;\r\n    CarHat = -90000;\r\n    \r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n      y_zmp =  Uaug_0(2);                 \r\n%     Roll_BaknR =  Uaug_0(1);\r\n%     Uaug_0(1) = Roll_Shad;\r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');    %\r\n    else\r\n        Xm = [Vy; yawrate; Rollrate; Roll; PrjP.ey; PrjP.epsi];        \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  MPC formulation;********************%\r\n%     [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    \r\n    Np          = MPCParameters.Np;\r\n    Eymax       = zeros(Np,1);\r\n    Eymin       = zeros(Np,1);     \r\n    LM_right    = -5;\r\n    LM_middle   = 0;\r\n    Yroad_L     = -2.5;\r\n    for i =1:1:Np  % עeyǴŵ, Np = 25\r\n        Eymax(i,1) = (LM_middle - Yroad_L);\r\n        Eymin(i,1) = (LM_right - Yroad_L);             \r\n    end\r\n    [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %--- Weighting Regulation functions\r\n    [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints);\r\n\r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.x_0      = Xm;\r\n    params.um       = fwa; % measured front whee angle\r\n%     params.x_0      = Xm - 0.6*(Xm - FeedbackCorrects.StatePred);\r\n%     params.um       = fwa - 0.6*(fwa - FeedbackCorrects.Ctrlopt); \r\n    \r\n    params.As       = StateSpaceModel.As;\r\n    params.Bs1      = StateSpaceModel.Bs1;\r\n    params.Bs2      = StateSpaceModel.Bs2;\r\n    params.Al       = StateSpaceModel.Al;\r\n    params.Bl11     = StateSpaceModel.Bl11;\r\n    params.Bl12     = StateSpaceModel.Bl12;\r\n    params.Bl21     = StateSpaceModel.Bl21;\r\n    params.Bl22     = StateSpaceModel.Bl22;\r\n\r\n    params.tstl     = MPCParameters.Ts/MPCParameters.Tsl;\r\n    params.Ql       = Ql;  \r\n    params.Rdun\t    = Rdun;  \r\n    params.Wshl\t    = Wshl;      \r\n    \r\n    params.dun      = dun; \r\n    params.dul      = dul; \r\n    params.umax     = Constraints.umax;    \r\n    params.Sshmax   = Constraints.Sshmax; \r\n    \r\n    params.Uaug_0   = Uaug_0;\r\n    params.Uaug     = Uaug;\r\n    \r\n    params.Henv     = Envelope.Henv;\r\n    params.Genv     = Envelope.Genv;\r\n    \r\n    params.Hsh      = Envelope.Hsh;\r\n    params.Psh      = Envelope.Psh;\r\n    params.Gsh      = Envelope.Gsh;\r\n \r\n    params.Hyzmp    = Envelope.H_yzmp;\r\n    params.Pyzmp1   = Envelope.P_yzmp1;\r\n    params.Pyzmp2   = Envelope.P_yzmp2;\r\n    params.Gyzmp    = 1.0; % 0.7; %һصԼ    \r\n\r\n    [vars, status] = csolve(params, settings);\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0; \r\n%         for i=1:1:20\r\n%             S_opt(i)    = vars.x{i}; \r\n%             U_opt(i)    = vars.u{i}; \r\n%         end  \r\n    else\r\n        fwa_opt =  vars.u_0;\r\n        fprintf('CVXGEN converged = 0 InitialGapflag= %d\\n', InitialGapflag);                  \r\n    end\r\n    FeedbackCorrects.StatePred = vars.x_1;\r\n    FeedbackCorrects.Ctrlopt   = fwa_opt;    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    %-----------------------------------------%\r\n    e_y            = PrjP.ey;\r\n    e_psi          = PrjP.epsi; \r\n\r\n\r\n    Shenvelop_hat  = Envelope.Hsh*Xm + Envelope.Psh*Uaug_0;\r\n    r_ssmax    = Envelope.Gsh(2);\r\n\r\n    YZPM = Envelope.H_yzmp*Xm + Envelope.P_yzmp1*fwa_opt + Envelope.P_yzmp2*Uaug_0; % + VehStateMeasured.yawrate_dot*VehiclePara.Iz/(VehiclePara.m*VehiclePara.g);%\r\n    YZPM = 2*YZPM/VehiclePara.Tr;\r\n    \r\n    Fzl = ParaHAT.Fz_l1 + ParaHAT.Fz_l2;\r\n    Fzr = ParaHAT.Fz_r1 + ParaHAT.Fz_r2;\r\n    LTR = (Fzr - Fzl)./(Fzr + Fzl);\r\n\r\n    y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);\r\n%     y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g); %%%- VehiclePara.hCG*ParaHAT.Roll_accel\r\n% %     y_zmp = ParaHAT.Ay_Bf_SM*ParaHAT.Zcg_SM/VehiclePara.g  + ParaHAT.Zcg_SM.*ParaHAT.Roll - VehiclePara.Ix*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);    \r\n%     y_zmp = 2*y_zmp/VehiclePara.Tr;\r\n\r\n\r\n\r\n     \r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_y; y_zmp; YZPM; LTR; Vy;  alphar; yawrate]; %\r\n\r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/Main_CurvePathTracking_CVXGEN_Terrain.m",
    "content": "function [sys,x0,str,ts] =Main_CurvePathTracking_CVXGEN_Terrain(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for safe driving\r\n% envelope control of high speed autonomous vehicle\r\n% Linearized spatial bicycle vehicle dynamic model is applied.\r\n% No successive linearizarion. No two time scale of prediction horizon\r\n% Constant high speed, curve path tracking \r\n% state vector =[beta,yawrate,e_phi,s,e_y]\r\n% control input = [steer_SW]\r\n% many other parameters are also outputed for comparision.\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My github: https://github.com/leoking99-BIT  \r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 15;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\n[y, e] = func_RLSFilter_Calpha_f('initial', 0.95, 10, 10);\r\n[y, e] = func_RLSFilter_Calpha_r('initial', 0.95, 10, 10);\r\n\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.m   = 1600;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g   = 9.81;\r\n    VehiclePara.hCG = 0.65;%m\r\n    VehiclePara.Lf  = 1.12;  % 1.05\r\n    VehiclePara.Lr  = 1.48;  % 1.55\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n    VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n    VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n    VehiclePara.Radius = 0.387;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 20;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ns  = 10; %  Tsplit\r\n    MPCParameters.Ts  = 0.05; % the sample time of near term\r\n    MPCParameters.Tsl = 0.2; % the sample time of long term       \r\n    MPCParameters.Nx  = 6; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 100; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 10;\r\n    CostWeights.Ddeltaf = 10;\r\n    CostWeights.deltaf  = 1; % ò\r\n    CostWeights.Wshar   = 500;\r\n    CostWeights.Wshr    = 500;\r\n\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.1/MPCParameters.Ts;     % Units: rad,0.08rad/s--4.6deg/s  \r\n    Constraints.umax    = 0.4;      % Units: rad appro.23deg\r\n    \r\n    Constraints.arlim   = 6*pi/180; % alpha_lim=6deg~ 0.1047rad\r\n    Constraints.rmax    = 1.0; % rr_max = 1rad/s    \r\n    \r\n    ar_slackMax         = 6*pi/180; % rad\r\n    rmax_slackMax       = 1.0;\r\n    Constraints.Sshmax  = [ar_slackMax; rmax_slackMax];\r\n    \r\n    Constraints.DPhimax = 60*pi/180;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % 3.0;    cross-track-error max 3m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n%     Reftraj = load('WayPoints_Alt3fromFHWA_Overall_Station_Bank.mat');\r\n    Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n    global FeedbackCorrects;\r\n    FeedbackCorrects.StatePred = zeros(6,1);\r\n    FeedbackCorrects.Ctrlopt   = 0;\r\n     \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\nglobal FeedbackCorrects;\r\n\r\n\r\nCtrl_SteerSW    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\nfwa_opt         = 0;\r\nShenvelop_hat   = [0; 0];\r\nr_ssmax         = 0;\r\nYZPM            = 0; \r\ny_zmp           = 0; \r\nLTR             = 0; \r\nVy              = 0;\r\nalphar          = 0;\r\nRoll_Shad       = 0;\r\nRoll_BaknR      = 0;\r\nStation         = 0;\r\nyawrate         = 0;\r\n\r\n% CafHat      = 0;\r\n% CarHat      = 0;\r\n% Fyf         = 0;\r\n% Fyr         = 0;\r\n% Arfa_f      = 0;\r\n% Arfa_r      = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n\r\n%     delta_f     = VehStateMeasured.delta_f;% deg-->rad    \r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad\r\n    Roll_Shad   = VehStateMeasured.Roll_Shad;%rad\r\n    Station     = VehStateMeasured.Station;\r\n    Roll        = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    Ay_CG       = ParaHAT.Ay_CG;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    Fyf         = ParaHAT.Fyf;\r\n    Fyr         = ParaHAT.Fyr;   \r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    %-----Estimate Cornering stiffness -------------------%  \r\n    %for front tire\r\n    Arfa_f = (Beta + yawrate*VehiclePara.Lf/Vel - fwa);\r\n    [yf, Calpha_f1] = func_RLSFilter_Calpha_f(Arfa_f, Fyf);\r\n    CafHat = sum(Calpha_f1);\r\n    if CafHat > -30000\r\n        CafHat = -110000;\r\n    end\r\n    %for rear tire \r\n    Arfa_r = (Beta - yawrate*VehiclePara.Lr/Vel);\r\n    [yr, Calpha_r1] = func_RLSFilter_Calpha_r(Arfa_r, Fyr);\r\n    CarHat = sum(Calpha_r1);\r\n    if CarHat > -30000\r\n        CarHat = -92000;\r\n    end    \r\n    %-----OR use constant Cornering stiffness -------------------%  \r\n    CafHat = -90000;\r\n    CarHat = -90000;\r\n    \r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n      y_zmp =  Uaug_0(2);                 \r\n%     Roll_BaknR =  Uaug_0(1);\r\n%     Uaug_0(1) = Roll_Shad;\r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');    %\r\n    else\r\n        Xm = [Vy; yawrate; Rollrate; Roll; PrjP.ey; PrjP.epsi];        \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  MPC formulation;********************%\r\n%     [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    \r\n    Np          = MPCParameters.Np;\r\n    Eymax       = zeros(Np,1);\r\n    Eymin       = zeros(Np,1);     \r\n    LM_right    = -5;\r\n    LM_middle   = 0;\r\n    Yroad_L     = -2.5;\r\n    for i =1:1:Np  % עeyǴŵ, Np = 25\r\n        Eymax(i,1) = (LM_middle - Yroad_L);\r\n        Eymin(i,1) = (LM_right - Yroad_L);             \r\n    end\r\n    [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %--- Weighting Regulation functions\r\n    [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints);\r\n\r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.x_0      = Xm;\r\n    params.um       = fwa; % measured front whee angle\r\n%     params.x_0      = Xm - 0.6*(Xm - FeedbackCorrects.StatePred);\r\n%     params.um       = fwa - 0.6*(fwa - FeedbackCorrects.Ctrlopt); \r\n    \r\n    params.As       = StateSpaceModel.As;\r\n    params.Bs1      = StateSpaceModel.Bs1;\r\n    params.Bs2      = StateSpaceModel.Bs2;\r\n    params.Al       = StateSpaceModel.Al;\r\n    params.Bl11     = StateSpaceModel.Bl11;\r\n    params.Bl12     = StateSpaceModel.Bl12;\r\n    params.Bl21     = StateSpaceModel.Bl21;\r\n    params.Bl22     = StateSpaceModel.Bl22;\r\n\r\n    params.tstl     = MPCParameters.Ts/MPCParameters.Tsl;\r\n    params.Ql       = Ql;  \r\n    params.Rdun\t    = Rdun;  \r\n    params.Wshl\t    = Wshl;      \r\n    \r\n    params.dun      = dun; \r\n    params.dul      = dul; \r\n    params.umax     = Constraints.umax;    \r\n    params.Sshmax   = Constraints.Sshmax; \r\n    \r\n    params.Uaug_0   = Uaug_0;\r\n    params.Uaug     = Uaug;\r\n    \r\n    params.Henv     = Envelope.Henv;\r\n    params.Genv     = Envelope.Genv;\r\n    \r\n    params.Hsh      = Envelope.Hsh;\r\n    params.Psh      = Envelope.Psh;\r\n    params.Gsh      = Envelope.Gsh;\r\n \r\n    params.Hyzmp    = Envelope.H_yzmp;\r\n    params.Pyzmp1   = Envelope.P_yzmp1;\r\n    params.Pyzmp2   = Envelope.P_yzmp2;\r\n    params.Gyzmp    = 1.0; % 0.7; %һصԼ    \r\n\r\n    [vars, status] = csolve(params, settings);\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0; \r\n%         for i=1:1:20\r\n%             S_opt(i)    = vars.x{i}; \r\n%             U_opt(i)    = vars.u{i}; \r\n%         end  \r\n    else\r\n        fwa_opt =  vars.u_0;\r\n        fprintf('CVXGEN converged = 0 InitialGapflag= %d\\n', InitialGapflag);                  \r\n    end\r\n    FeedbackCorrects.StatePred = vars.x_1;\r\n    FeedbackCorrects.Ctrlopt   = fwa_opt;    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    %-----------------------------------------%\r\n    e_y            = PrjP.ey;\r\n    e_psi          = PrjP.epsi; \r\n\r\n\r\n    Shenvelop_hat  = Envelope.Hsh*Xm + Envelope.Psh*Uaug_0;\r\n    r_ssmax    = Envelope.Gsh(2);\r\n\r\n    YZPM = Envelope.H_yzmp*Xm + Envelope.P_yzmp1*fwa_opt + Envelope.P_yzmp2*Uaug_0; % + VehStateMeasured.yawrate_dot*VehiclePara.Iz/(VehiclePara.m*VehiclePara.g);%\r\n    YZPM = 2*YZPM/VehiclePara.Tr;\r\n    \r\n    Fzl = ParaHAT.Fz_l1 + ParaHAT.Fz_l2;\r\n    Fzr = ParaHAT.Fz_r1 + ParaHAT.Fz_r2;\r\n    LTR = (Fzr - Fzl)./(Fzr + Fzl);\r\n\r\n    y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);\r\n%     y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g); %%%- VehiclePara.hCG*ParaHAT.Roll_accel\r\n% %     y_zmp = ParaHAT.Ay_Bf_SM*ParaHAT.Zcg_SM/VehiclePara.g  + ParaHAT.Zcg_SM.*ParaHAT.Roll - VehiclePara.Ix*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);    \r\n%     y_zmp = 2*y_zmp/VehiclePara.Tr;\r\n\r\n\r\n\r\n     \r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_y; y_zmp; YZPM; LTR; Vy;  alphar; yawrate]; %\r\n\r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/Main_CurvePathTracking_CVXGEN_Terrain_FeedbackCorrections.m",
    "content": "function [sys,x0,str,ts] =Main_CurvePathTracking_CVXGEN_Terrain(t,x,u,flag)\r\n%***************************************************************%\r\n% This is a Simulink/Carsim joint simulation solution for safe driving\r\n% envelope control of high speed autonomous vehicle\r\n% Linearized spatial bicycle vehicle dynamic model is applied.\r\n% No successive linearizarion. No two time scale of prediction horizon\r\n% Constant high speed, curve path tracking \r\n% state vector =[beta,yawrate,e_phi,s,e_y]\r\n% control input = [steer_SW]\r\n% many other parameters are also outputed for comparision.\r\n\r\n% Input:\r\n% tǲʱ, x״̬, u(simulinkģ,CarSim),\r\n% flagǷе״̬־(жϵǰǳʼе)\r\n\r\n% Output:\r\n% sysflagĲͬͬ(潫flagsysĺ), \r\n% x0״̬ĳʼֵ, \r\n% strǱ,Ϊ\r\n% tsһ12, ts(1)ǲ, ts(2)ƫ\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************% \r\n    switch flag,\r\n        case 0 % Initialization %\r\n            [sys,x0,str,ts] = mdlInitializeSizes; % Initialization\r\n        case 2 % Update %\r\n            sys = mdlUpdates(t,x,u); % Update discrete states\r\n        case 3 % Outputs %\r\n            sys = mdlOutputs(t,x,u); % Calculate outputs\r\n        case {1,4,9} % Unused flags\r\n            sys = [];            \r\n        otherwise % Unexpected flags %\r\n            error(['unhandled flag = ',num2str(flag)]); % Error handling\r\n    end %  end of switch    \r\n%  End sfuntmpl\r\n\r\nfunction [sys,x0,str,ts] = mdlInitializeSizes\r\n%==============================================================\r\n% Initialization, flag = 0mdlInitializeSizes\r\n% Return the sizes, initial conditions, and sample times for the S-function.\r\n%==============================================================\r\nsizes = simsizes;%ģĽṹsimsizes\r\nsizes.NumContStates  = 0;  %ģ״̬ĸ\r\nsizes.NumDiscStates  = 6;  %ģɢ״̬ĸ,ʵûõֵֻʾɢģ\r\nsizes.NumOutputs     = 15;  %S\r\nsizes.NumInputs      = 38; %SģĸCarSim\r\nsizes.DirFeedthrough = 1;  %ģǷֱӹͨ(direct feedthrough). 1 means there is direct feedthrough.\r\n% ֱͨʾϵͳɱʱǷܵĿơ\r\n% a.  mdlOutputsflag==3uĺumdlOutputsбʣֱͨ\r\n% b.  һ䲽S-Functionġһʱ䡱mdlGetTimeOfNextVarHitflag==4пԷu\r\n% ȷֱͨ־ʮҪģΪӰģпִ˳򣬲ü\r\nsizes.NumSampleTimes = 1;  %ģĲ>=1\r\n\r\nsys = simsizes(sizes);    %󸳸sys\r\n\r\nx0 = zeros(sizes.NumDiscStates,1);%initial the  state vector of no use\r\n\r\nstr = [];             % Set str to an empty matrix.\r\n\r\nts  = [0.05 0];       % ts=[period, offset].sample time=0.05,50ms \r\n\r\n%--Global parameters and initialization\r\n[y, e] = func_RLSFilter_Calpha_f('initial', 0.95, 10, 10);\r\n[y, e] = func_RLSFilter_Calpha_r('initial', 0.95, 10, 10);\r\n\r\n    global InitialGapflag; \r\n    InitialGapflag = 0; % the first few inputs don't count. Gap it.\r\n    \r\n    global VehiclePara; % for SUV\r\n    VehiclePara.m   = 1600;   %mΪ,Kg; Sprung mass = 1370\r\n    VehiclePara.g   = 9.81;\r\n    VehiclePara.hCG = 0.65;%m\r\n    VehiclePara.Lf  = 1.12;  % 1.05\r\n    VehiclePara.Lr  = 1.48;  % 1.55\r\n    VehiclePara.L   = 2.6;  %VehiclePara.Lf + VehiclePara.Lr;\r\n    VehiclePara.Tr  = 1.565;  %c,or 1.57. ע᳤lcδȷ\r\n    VehiclePara.mu  = 0.85; % 0.55; %Ħ\r\n    VehiclePara.Iz  = 2059.2;   %IΪZתв  \r\n    VehiclePara.Ix  = 700.7;   %IΪZתв  \r\n    VehiclePara.Radius = 0.387;  % ̥뾶   \r\n    \r\n    global MPCParameters; \r\n    MPCParameters.Np  = 20;% predictive horizon Assume Np=Nc\r\n    MPCParameters.Ns  = 10; %  Tsplit\r\n    MPCParameters.Ts  = 0.05; % the sample time of near term\r\n    MPCParameters.Tsl = 0.2; % the sample time of long term       \r\n    MPCParameters.Nx  = 6; %the number of state variables\r\n    MPCParameters.Ny  = 2; %the number of output variables      \r\n    MPCParameters.Nu  = 1; %the number of control inputs\r\n    \r\n    global CostWeights; \r\n    CostWeights.Wephi   = 100; %state vector =[beta,yawrate,e_phi,s,e_y]\r\n    CostWeights.Wey     = 10;\r\n    CostWeights.Ddeltaf = 10;\r\n    CostWeights.deltaf  = 1; % ò\r\n    CostWeights.Wshar   = 500;\r\n    CostWeights.Wshr    = 500;\r\n\r\n    \r\n    global Constraints;  \r\n    Constraints.dumax   = 0.1/MPCParameters.Ts;     % Units: rad,0.08rad/s--4.6deg/s  \r\n    Constraints.umax    = 0.4;      % Units: rad appro.23deg\r\n    \r\n    Constraints.arlim   = 6*pi/180; % alpha_lim=6deg~ 0.1047rad\r\n    Constraints.rmax    = 1.0; % rr_max = 1rad/s    \r\n    \r\n    ar_slackMax         = 6*pi/180; % rad\r\n    rmax_slackMax       = 1.0;\r\n    Constraints.Sshmax  = [ar_slackMax; rmax_slackMax];\r\n    \r\n    Constraints.DPhimax = 60*pi/180;  %  ƫ60deg\r\n    Constraints.Dymax   = 1.7; % 3.0;    cross-track-error max 3m\r\n\r\n    global WayPoints_IndexPre;\r\n    WayPoints_IndexPre = 1;\r\n    \r\n    global Reftraj;\r\n%     Reftraj = load('WayPoints_Alt3fromFHWA_Overall_Station_Bank.mat');\r\n    Reftraj = load('WayPoints_Alt3fromFHWA_Samples.mat');    \r\n    \r\n    global FeedbackCorrects;\r\n    FeedbackCorrects.StatePred = zeros(6,1);\r\n    FeedbackCorrects.Ctrlopt   = 0;\r\n     \r\n%  End of mdlInitializeSizes\r\n\r\nfunction sys = mdlUpdates(t,x,u)\r\n%==============================================================\r\n% Update the discrete states, flag = 2 mdlUpdate\r\n% Handle discrete state updates, sample time hits, and major time step\r\n% requirements.\r\n%==============================================================\r\n%  ûọ̃ںڵĳģ黯ʱԼܡ\r\n    sys = x;    \r\n% End of mdlUpdate.\r\n\r\nfunction sys = mdlOutputs(t,x,u)\r\n%==============================================================\r\n% Calculate outputs, flag = 3 mdlOutputs\r\n% Return the block outputs. \r\n%==============================================================\r\n\r\n%***********Step (1). Parameters Initialization ***************************************%\r\n\r\nglobal InitialGapflag;\r\nglobal VehiclePara;\r\nglobal MPCParameters; \r\nglobal CostWeights;     \r\nglobal Constraints;\r\nglobal WayPoints_IndexPre;\r\nglobal Reftraj;\r\nglobal FeedbackCorrects;\r\n\r\n\r\nCtrl_SteerSW    = 0;\r\nt_Elapsed       = 0;\r\nPosX            = 0;\r\nPosY            = 0;\r\nPosPsi          = 0;\r\nVel             = 0;\r\ne_psi           = 0;\r\ne_y             = 0;\r\n% fwa_opt         = 0;\r\nShenvelop_hat   = [0; 0];\r\nr_ssmax         = 0;\r\nYZPM            = 0; \r\ny_zmp           = 0; \r\nLTR             = 0; \r\nVy              = 0;\r\nalphar          = 0;\r\nRoll_Shad       = 0;\r\nRoll_BaknR      = 0;\r\nStation         = 0;\r\nyawrate         = 0;\r\n% CafHat      = 0;\r\n% CarHat      = 0;\r\n% Fyf         = 0;\r\n% Fyr         = 0;\r\n% Arfa_f      = 0;\r\n% Arfa_r      = 0;\r\n    \r\nif InitialGapflag < 2 %  get rid of the first two inputs,  because no data from CarSim\r\n    InitialGapflag = InitialGapflag + 1;\r\nelse % start control\r\n    InitialGapflag = InitialGapflag + 1;\r\n%***********Step (2). State estimation and Location **********************% \r\n    t_Start = tic; % ʼʱ  \r\n    %-----Update State Estimation of measured Vehicle Configuration--------%\r\n    [VehStateMeasured, ParaHAT] = func_StateEstimation(u);   \r\n    PosX        = VehStateMeasured.X;\r\n    PosY        = VehStateMeasured.Y;\r\n    PosPsi      = VehStateMeasured.phi;    \r\n    Vel         = VehStateMeasured.x_dot; \r\n    Vy          = VehStateMeasured.y_dot; \r\n    yawrate     = VehStateMeasured.phi_dot; % rad/s\r\n    Ax          = VehStateMeasured.Ax; % x_dot\r\n    Ay          = VehStateMeasured.Ay; % y_dot\r\n\r\n%     delta_f     = VehStateMeasured.delta_f;% deg-->rad    \r\n    fwa         = VehStateMeasured.fwa;\r\n    Beta        = VehStateMeasured.beta;%rad\r\n    Roll_Shad   = VehStateMeasured.Roll_Shad;%rad\r\n    Station     = VehStateMeasured.Station;\r\n    Roll        = ParaHAT.Roll;\r\n    Rollrate    = ParaHAT.Rollrate;\r\n    Ay_CG       = ParaHAT.Ay_CG;    \r\n    Ay_Bf_SM    = ParaHAT.Ay_Bf_SM;    \r\n    Fyf         = ParaHAT.Fyf;\r\n    Fyr         = ParaHAT.Fyr;   \r\n    alphaf      = ParaHAT.alphaf;\r\n    alphar      = ParaHAT.alphar;\r\n    \r\n    %-----Estimate Cornering stiffness -------------------%  \r\n    %for front tire\r\n    Arfa_f = (Beta + yawrate*VehiclePara.Lf/Vel - fwa);\r\n    [yf, Calpha_f1] = func_RLSFilter_Calpha_f(Arfa_f, Fyf);\r\n    CafHat = sum(Calpha_f1);\r\n    if CafHat > -30000\r\n        CafHat = -110000;\r\n    end\r\n    %for rear tire \r\n    Arfa_r = (Beta - yawrate*VehiclePara.Lr/Vel);\r\n    [yr, Calpha_r1] = func_RLSFilter_Calpha_r(Arfa_r, Fyr);\r\n    CarHat = sum(Calpha_r1);\r\n    if CarHat > -30000\r\n        CarHat = -92000;\r\n    end    \r\n    %-----OR use constant Cornering stiffness -------------------%  \r\n%     CafHat = -90000;\r\n%     CarHat = -90000;\r\n    \r\n    %********Step(3): Given reference trajectory, update vehicle state and bounds *******************% \r\n    [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters,... \r\n                            VehiclePara,... \r\n                            WayPoints_IndexPre,... \r\n                            Reftraj.WayPoints_Collect,... \r\n                            VehStateMeasured ); % \r\n%     Roll_BaknR =  Uaug_0(1);\r\n%     Uaug_0(1) = Roll_Shad;\r\n                            \r\n    if ( WPIndex <= 0)\r\n       fprintf('Error: WPIndex <= 0 \\n');    %\r\n    else\r\n        Xm = [Vy; yawrate; Rollrate; Roll; PrjP.ey; PrjP.epsi];        \r\n        WayPoints_IndexPre = WPIndex;        \r\n    end\r\n\r\n    %****Step(4):  MPC formulation;********************%\r\n%     [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, CafHat, CarHat);\r\n    \r\n    Np          = MPCParameters.Np;\r\n    Eymax       = zeros(Np,1);\r\n    Eymin       = zeros(Np,1);     \r\n    LM_right    = -5;\r\n    LM_middle   = 0;\r\n    Yroad_L     = -2.5;\r\n    for i =1:1:Np  % עeyǴŵ, Np = 25\r\n        Eymax(i,1) = (LM_middle - Yroad_L);\r\n        Eymin(i,1) = (LM_right - Yroad_L);             \r\n    end\r\n    [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat,  Eymax, Eymin); \r\n    \r\n    %--- Weighting Regulation functions\r\n    [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints);\r\n\r\n    %================CVXGEN solver==================================%\r\n    settings.verbose    = 0;       % 0-Silence; 1-display\r\n    settings.max_iters  = 25;    %Limits the total iterations\r\n    \r\n    params.x_0      = Xm;\r\n    params.um       = fwa; % measured front whee angle\r\n%     params.x_0      = Xm - 0.6*(Xm - FeedbackCorrects.StatePred);\r\n%     params.um       = fwa - 0.6*(fwa - FeedbackCorrects.Ctrlopt); \r\n    \r\n    params.As       = StateSpaceModel.As;\r\n    params.Bs1      = StateSpaceModel.Bs1;\r\n    params.Bs2      = StateSpaceModel.Bs2;\r\n    params.Al       = StateSpaceModel.Al;\r\n    params.Bl11     = StateSpaceModel.Bl11;\r\n    params.Bl12     = StateSpaceModel.Bl12;\r\n    params.Bl21     = StateSpaceModel.Bl21;\r\n    params.Bl22     = StateSpaceModel.Bl22;\r\n\r\n    params.tstl     = MPCParameters.Ts/MPCParameters.Tsl;\r\n    params.Ql       = Ql;  \r\n    params.Rdun\t    = Rdun;  \r\n    params.Wshl\t    = Wshl;      \r\n    \r\n    params.dun      = dun; \r\n    params.dul      = dul; \r\n    params.umax     = Constraints.umax;    \r\n    params.Sshmax   = Constraints.Sshmax; \r\n    \r\n    params.Uaug_0   = Uaug_0;\r\n    params.Uaug     = Uaug;\r\n    \r\n    params.Henv     = Envelope.Henv;\r\n    params.Genv     = Envelope.Genv;\r\n    \r\n    params.Hsh      = Envelope.Hsh;\r\n    params.Psh      = Envelope.Psh;\r\n    params.Gsh      = Envelope.Gsh;\r\n \r\n    params.Hyzmp    = Envelope.H_yzmp;\r\n    params.Pyzmp1   = Envelope.P_yzmp1;\r\n    params.Pyzmp2   = Envelope.P_yzmp2;\r\n    params.Gyzmp    = 1.0; % 0.7; %һصԼ    \r\n\r\n    [vars, status] = csolve(params, settings);\r\n    if (1 == status.converged) %if optimization succeeded.\r\n        fwa_opt = vars.u_0; \r\n%         for i=1:1:20\r\n%             S_opt(i)    = vars.x{i}; \r\n%             U_opt(i)    = vars.u{i}; \r\n%         end  \r\n    else\r\n        fwa_opt =  vars.u_0;\r\n        fprintf('CVXGEN converged = 0 InitialGapflag= %d\\n', InitialGapflag);                  \r\n    end\r\n    FeedbackCorrects.StatePred = vars.x_1;\r\n    FeedbackCorrects.Ctrlopt   = fwa_opt;    \r\n    %====================================================================%\r\n    Ctrl_SteerSW = 19 * fwa_opt*180/pi; % in deg.    \r\n      \r\n    t_Elapsed = toc( t_Start ); %computation time\r\n    \r\n    %-----------------------------------------%\r\n    e_y            = PrjP.ey;\r\n    e_psi          = PrjP.epsi; \r\n\r\n\r\n    Shenvelop_hat  = Envelope.Hsh*Xm + Envelope.Psh*Uaug_0;\r\n    r_ssmax    = Envelope.Gsh(2);\r\n\r\n    YZPM = Envelope.H_yzmp*Xm + Envelope.P_yzmp1*fwa_opt + Envelope.P_yzmp2*Uaug_0; % + VehStateMeasured.yawrate_dot*VehiclePara.Iz/(VehiclePara.m*VehiclePara.g);%\r\n%     YZPM = 2*YZPM/VehiclePara.Tr;\r\n    \r\n    Fzl = ParaHAT.Fz_l1 + ParaHAT.Fz_l2;\r\n    Fzr = ParaHAT.Fz_r1 + ParaHAT.Fz_r2;\r\n    LTR = (Fzr - Fzl)./(Fzr + Fzl);\r\n\r\n%     y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);\r\n    y_zmp  = (Ay_CG)*VehiclePara.hCG/VehiclePara.g + VehiclePara.hCG*(ParaHAT.Roll) - (VehiclePara.Ix)*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g); %%%- VehiclePara.hCG*ParaHAT.Roll_accel\r\n%     y_zmp = ParaHAT.Ay_Bf_SM*ParaHAT.Zcg_SM/VehiclePara.g  + ParaHAT.Zcg_SM.*ParaHAT.Roll - VehiclePara.Ix*(ParaHAT.Roll_accel)/(VehiclePara.m*VehiclePara.g);    \r\n    y_zmp = 2*y_zmp/VehiclePara.Tr;\r\n\r\n\r\n\r\n     \r\nend % end of if Initialflag < 2 % \r\n\r\nsys = [Ctrl_SteerSW; t_Elapsed; PosX; PosY; PosPsi; Station; Vel; e_psi; e_y; YZPM; y_zmp; LTR; Vy;  alphar; yawrate]; %\r\n\r\n%  sys = [Ctrl_SteerSW; CafHat; CarHat; Fyf; Fyr; alphaf; alphar; Arfa_f; Arfa_r];  \r\n\r\n% end  %End of mdlOutputs.\r\n\r\n%==============================================================\r\n% sub functions\r\n%==============================================================    \r\n\r\n%***************************************************************%\r\n% **** State estimation\r\n%***************************************************************%\r\nfunction [VehStatemeasured, HATParameter] = func_StateEstimation(ModelInput)\r\n%***************************************************************%\r\n% we should do state estimation, but for simplicity we deem that the\r\n% measurements are accurate\r\n% Update the state vector according to the input of the S function,\r\n%           usually do State Estimation from measured Vehicle Configuration\r\n%***************************************************************%  \r\n    %******ӿת***%        \r\n    g = 9.81;\r\n    VehStatemeasured.X       = round(100*ModelInput(1))/100;%λΪm, 2λС\r\n    VehStatemeasured.Y       = round(100*ModelInput(2))/100;%λΪm, 2λС    \r\n    VehStatemeasured.phi     = (round(10*ModelInput(3))/10)*pi/180; %ǣUnitdeg-->rad1λС    \r\n    VehStatemeasured.x_dot   = ModelInput(4)/3.6; %Unit:km/h-->m/s1λС  \r\n    VehStatemeasured.y_dot   = ModelInput(5)/3.6; %Unit:km/h-->m/s1λС   \r\n    VehStatemeasured.phi_dot = (round(10*ModelInput(6))/10)*pi/180; %Unitdeg/s-->rad/s1λС      \r\n    VehStatemeasured.beta    = (round(10*ModelInput(7))/10)*pi/180;% side slip, Unit:deg-->rad1λС    \r\n    VehStatemeasured.delta_f = (round(10*0.5*(ModelInput(8)+ ModelInput(9)))/10)*pi/180; % deg-->rad\r\n    VehStatemeasured.fwa     = VehStatemeasured.delta_f * pi/180;  % deg-->rad\r\n    VehStatemeasured.Steer_SW= ModelInput(10); %deg\r\n    VehStatemeasured.Ax      = g*ModelInput(11);%λΪm/s^2, 2λС\r\n    VehStatemeasured.Ay      = g*ModelInput(12);%λΪm/s^2, 2λС\r\n    VehStatemeasured.yawrate_dot = ModelInput(13); %rad/s^2\r\n    % Here I don't explore the state estimation process, and deem the\r\n    % measured values are accurate!!! \r\n    HATParameter.alpha_l1   = (round(10*ModelInput(14))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_l2   = (round(10*ModelInput(15))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r1   = (round(10*ModelInput(16))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alpha_r2   = (round(10*ModelInput(17))/10)*pi/180; % deg-->rad1λС     \r\n    HATParameter.alphaf     = (round(10*0.5 * (ModelInput(14)+ ModelInput(16)))/10)*pi/180; % deg-->rad1λС   \r\n    HATParameter.alphar     = (round(10*0.5 * (ModelInput(15)+ ModelInput(17)))/10)*pi/180; % deg-->rad1λС  \r\n    \r\n    HATParameter.Fz_l1      = round(10*ModelInput(18))/10; % N \r\n    HATParameter.Fz_l2      = round(10*ModelInput(19))/10; % N \r\n    HATParameter.Fz_r1      = round(10*ModelInput(20))/10; % N \r\n    HATParameter.Fz_r2      = round(10*ModelInput(21))/10; % N \r\n    \r\n    HATParameter.Fy_l1      = round(10*ModelInput(22))/10; % N \r\n    HATParameter.Fy_l2      = round(10*ModelInput(23))/10; % N \r\n    HATParameter.Fy_r1      = round(10*ModelInput(24))/10; % N \r\n    HATParameter.Fy_r2      = round(10*ModelInput(25))/10; % N \r\n    HATParameter.Fyf        = HATParameter.Fy_l1 + HATParameter.Fy_r1;\r\n    HATParameter.Fyr        = HATParameter.Fy_l2 + HATParameter.Fy_r2;\r\n    \r\n    HATParameter.Fx_L1      = ModelInput(26);\r\n    HATParameter.Fx_L2      = ModelInput(27);\r\n    HATParameter.Fx_R1      = ModelInput(28);\r\n    HATParameter.Fx_R2      = ModelInput(29);\r\n    \r\n%     HATParameter.GearStat    = ModelInput(30);\r\n    VehStatemeasured.Roll_Shad   = ModelInput(30)*pi/180;% deg-->rad \r\n    HATParameter.Roll        = ModelInput(31)*pi/180;% deg-->rad \r\n    HATParameter.Rollrate    = ModelInput(32)*pi/180;% deg/s-->rad/s\r\n    HATParameter.Roll_accel  = ModelInput(33); % rad/s^2\r\n    HATParameter.Z0          = ModelInput(34); %m\r\n    VehStatemeasured.Station     = ModelInput(35); %m\r\n    HATParameter.Zcg_TM      = ModelInput(35); %m\r\n    HATParameter.Zcg_SM      = ModelInput(36); %m\r\n    HATParameter.Ay_CG       = ModelInput(37)*g; %m/s^2\r\n    HATParameter.Ay_Bf_SM    = ModelInput(38)*g; %m/s^2\r\n    \r\n% end % end of func_StateEstimation\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/Plot_Yzmp_LTR_Comparison.m",
    "content": "\r\nclose all\r\nlw = 2;\r\nNum = length(u.signals.values(:,2));\r\n\r\n% LTR = u.signals.values(:,9);\r\n% Yzmp_SH = u.signals.values(:,10);\r\n% Yzmp = u.signals.values(:,11);\r\n% Yzmp1 = u.signals.values(:,12);\r\n% \r\n% figure\r\n% plot(1:Num, LTR','r',1:Num, Yzmp_SH,'b',1:Num, Yzmp,'g',1:Num, Yzmp1,'k', 'Linewidth',lw);\r\n% grid on\r\n% legend('LTR','Yzmp_{SH}','Yzmp','Yzmp1');\r\n\r\n%%\r\n\r\nYzmp_SH = u.signals.values(:,10);\r\nYzmp = u.signals.values(:,11);\r\nLTR = u.signals.values(:,12);\r\n\r\nfigure\r\nplot(1:Num, LTR,'r',1:Num, Yzmp_SH,'b',1:Num, Yzmp,'g', 'Linewidth',lw);\r\ngrid on\r\nlegend('LTR','Yzmp_{SH}','Yzmp');\r\n\r\n% Roll_BankR = u.signals.values(:,17);\r\n% Roll_shad  = u.signals.values(:,18);\r\n% figure\r\n% plot(1:Num, Roll_shad,'r',1:Num, Roll_BankR,'bo', 'Linewidth',lw);\r\n% grid on\r\n% legend('Roll_{shad}','Roll_{BankR}');\r\n\r\n%% Save simulation data\r\n% SimResult_Both = u.signals.values; \r\n% save SimResult_Both.mat SimResult_Both\r\n\r\n% SimResult_Neither = u.signals.values; \r\n% save SimResult_Neither.mat SimResult_Neither\r\n% \r\n% SimResult_Bank = u.signals.values; \r\n% save SimResult_Bank.mat SimResult_Bank\r\n% \r\n% SimResult_Curvature = u.signals.values; \r\n% save SimResult_Curvature.mat SimResult_Curvature\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/RigidbodyMPCCurvePathTracking.mdl",
    "content": "Model {\r\n  Name\t\t\t  \"RigidbodyMPCCurvePathTracking\"\r\n  Version\t\t  8.2\r\n  MdlSubVersion\t\t  0\r\n  SavedCharacterEncoding  \"GBK\"\r\n  GraphicalInterface {\r\n    NumRootInports\t    0\r\n    NumRootOutports\t    0\r\n    ParameterArgumentNames  \"\"\r\n    ComputedModelVersion    \"1.241\"\r\n    NumModelReferences\t    0\r\n    NumTestPointedSignals   0\r\n  }\r\n  slprops.hdlmdlprops {\r\n    $PropName\t\t    \"HDLParams\"\r\n    $ObjectID\t\t    1\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      2\r\n      Cell\t\t      \"HDLSubsystem\"\r\n      Cell\t\t      \"RigidbodyMPCCurvePathTracking\"\r\n      PropName\t\t      \"mdlProps\"\r\n    }\r\n  }\r\n  SaveDefaultBlockParams  on\r\n  ScopeRefreshTime\t  0.035000\r\n  OverrideScopeRefreshTime on\r\n  DisableAllScopes\t  off\r\n  DataTypeOverride\t  \"UseLocalSettings\"\r\n  DataTypeOverrideAppliesTo \"AllNumericTypes\"\r\n  MinMaxOverflowLogging\t  \"UseLocalSettings\"\r\n  MinMaxOverflowArchiveMode \"Overwrite\"\r\n  FPTRunName\t\t  \"Run 1\"\r\n  MaxMDLFileLineLength\t  120\r\n  Object {\r\n    $PropName\t\t    \"BdWindowsInfo\"\r\n    $ObjectID\t\t    2\r\n    $ClassName\t\t    \"Simulink.BDWindowsInfo\"\r\n    Object {\r\n      $PropName\t\t      \"WindowsInfo\"\r\n      $ObjectID\t\t      3\r\n      $ClassName\t      \"Simulink.WindowInfo\"\r\n      IsActive\t\t      [1]\r\n      Location\t\t      [747.0, 133.0, 1036.0, 764.0]\r\n      Object {\r\n\t$PropName\t\t\"ModelBrowserInfo\"\r\n\t$ObjectID\t\t4\r\n\t$ClassName\t\t\"Simulink.ModelBrowserInfo\"\r\n\tVisible\t\t\t[0]\r\n\tDockPosition\t\t\"Left\"\r\n\tWidth\t\t\t[50]\r\n\tHeight\t\t\t[50]\r\n\tFilter\t\t\t[9]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"ExplorerBarInfo\"\r\n\t$ObjectID\t\t5\r\n\t$ClassName\t\t\"Simulink.ExplorerBarInfo\"\r\n\tVisible\t\t\t[1]\r\n      }\r\n      Object {\r\n\t$PropName\t\t\"EditorsInfo\"\r\n\t$ObjectID\t\t6\r\n\t$ClassName\t\t\"Simulink.EditorInfo\"\r\n\tIsActive\t\t[1]\r\n\tViewObjType\t\t\"SimulinkTopLevel\"\r\n\tLoadSaveID\t\t\"0\"\r\n\tExtents\t\t\t[984.0, 566.0]\r\n\tZoomFactor\t\t[1.7499999999999998]\r\n\tOffset\t\t\t[53.536046202867738, 171.0]\r\n      }\r\n    }\r\n  }\r\n  Created\t\t  \"Wed May 29 22:31:22 2013\"\r\n  Creator\t\t  \"xuwei\"\r\n  UpdateHistory\t\t  \"UpdateHistoryNever\"\r\n  ModifiedByFormat\t  \"%<Auto>\"\r\n  LastModifiedBy\t  \"admin\"\r\n  ModifiedDateFormat\t  \"%<Auto>\"\r\n  LastModifiedDate\t  \"Sat Nov 17 00:44:14 2018\"\r\n  RTWModifiedTimeStamp\t  464316000\r\n  ModelVersionFormat\t  \"1.%<AutoIncrement:241>\"\r\n  ConfigurationManager\t  \"none\"\r\n  SampleTimeColors\t  off\r\n  SampleTimeAnnotations\t  off\r\n  LibraryLinkDisplay\t  \"none\"\r\n  WideLines\t\t  off\r\n  ShowLineDimensions\t  off\r\n  ShowPortDataTypes\t  off\r\n  ShowDesignRanges\t  off\r\n  ShowLoopsOnError\t  on\r\n  IgnoreBidirectionalLines off\r\n  ShowStorageClass\t  off\r\n  ShowTestPointIcons\t  on\r\n  ShowSignalResolutionIcons on\r\n  ShowViewerIcons\t  on\r\n  SortedOrder\t\t  off\r\n  ExecutionContextIcon\t  off\r\n  ShowLinearizationAnnotations on\r\n  BlockNameDataTip\t  off\r\n  BlockParametersDataTip  off\r\n  BlockDescriptionStringDataTip\toff\r\n  ToolBar\t\t  on\r\n  StatusBar\t\t  on\r\n  BrowserShowLibraryLinks off\r\n  BrowserLookUnderMasks\t  off\r\n  SimulationMode\t  \"normal\"\r\n  PauseTimes\t\t  \"5\"\r\n  NumberOfSteps\t\t  1\r\n  SnapshotBufferSize\t  10\r\n  SnapshotInterval\t  10\r\n  NumberOfLastSnapshots\t  0\r\n  LinearizationMsg\t  \"none\"\r\n  Profile\t\t  off\r\n  ParamWorkspaceSource\t  \"MATLABWorkspace\"\r\n  AccelSystemTargetFile\t  \"accel.tlc\"\r\n  AccelTemplateMakefile\t  \"accel_default_tmf\"\r\n  AccelMakeCommand\t  \"make_rtw\"\r\n  TryForcingSFcnDF\t  off\r\n  Object {\r\n    $PropName\t\t    \"DataLoggingOverride\"\r\n    $ObjectID\t\t    7\r\n    $ClassName\t\t    \"Simulink.SimulationData.ModelLoggingInfo\"\r\n    model_\t\t    \"RigidbodyMPCCurvePathTracking\"\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"RigidbodyMPCCurvePathTracking\"\r\n      PropName\t\t      \"logAsSpecifiedByModels_\"\r\n    }\r\n    Array {\r\n      Type\t\t      \"Cell\"\r\n      Dimension\t\t      1\r\n      Cell\t\t      \"\"\r\n      PropName\t\t      \"logAsSpecifiedByModelsSSIDs_\"\r\n    }\r\n  }\r\n  RecordCoverage\t  off\r\n  CovPath\t\t  \"/\"\r\n  CovSaveName\t\t  \"covdata\"\r\n  CovMetricSettings\t  \"dw\"\r\n  CovNameIncrementing\t  off\r\n  CovHtmlReporting\t  on\r\n  CovForceBlockReductionOff on\r\n  CovEnableCumulative\t  on\r\n  covSaveCumulativeToWorkspaceVar on\r\n  CovSaveSingleToWorkspaceVar on\r\n  CovCumulativeVarName\t  \"covCumulativeData\"\r\n  CovCumulativeReport\t  off\r\n  CovReportOnPause\t  on\r\n  CovModelRefEnable\t  \"Off\"\r\n  CovExternalEMLEnable\t  off\r\n  ExtModeBatchMode\t  off\r\n  ExtModeEnableFloating\t  on\r\n  ExtModeTrigType\t  \"manual\"\r\n  ExtModeTrigMode\t  \"normal\"\r\n  ExtModeTrigPort\t  \"1\"\r\n  ExtModeTrigElement\t  \"any\"\r\n  ExtModeTrigDuration\t  1000\r\n  ExtModeTrigDurationFloating \"auto\"\r\n  ExtModeTrigHoldOff\t  0\r\n  ExtModeTrigDelay\t  0\r\n  ExtModeTrigDirection\t  \"rising\"\r\n  ExtModeTrigLevel\t  0\r\n  ExtModeArchiveMode\t  \"off\"\r\n  ExtModeAutoIncOneShot\t  off\r\n  ExtModeIncDirWhenArm\t  off\r\n  ExtModeAddSuffixToVar\t  off\r\n  ExtModeWriteAllDataToWs off\r\n  ExtModeArmWhenConnect\t  on\r\n  ExtModeSkipDownloadWhenConnect off\r\n  ExtModeLogAll\t\t  on\r\n  ExtModeAutoUpdateStatusClock on\r\n  BufferReuse\t\t  on\r\n  ShowModelReferenceBlockVersion off\r\n  ShowModelReferenceBlockIO off\r\n  Array {\r\n    Type\t\t    \"Handle\"\r\n    Dimension\t\t    1\r\n    Simulink.ConfigSet {\r\n      $ObjectID\t\t      8\r\n      Version\t\t      \"1.13.1\"\r\n      Array {\r\n\tType\t\t\t\"Handle\"\r\n\tDimension\t\t9\r\n\tSimulink.SolverCC {\r\n\t  $ObjectID\t\t  9\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  StartTime\t\t  \"0.0\"\r\n\t  StopTime\t\t  \"10\"\r\n\t  AbsTol\t\t  \"auto\"\r\n\t  FixedStep\t\t  \"0.01\"\r\n\t  InitialStep\t\t  \"auto\"\r\n\t  MaxNumMinSteps\t  \"-1\"\r\n\t  MaxOrder\t\t  5\r\n\t  ZcThreshold\t\t  \"auto\"\r\n\t  ConsecutiveZCsStepRelTol \"10*128*eps\"\r\n\t  MaxConsecutiveZCs\t  \"1000\"\r\n\t  ExtrapolationOrder\t  4\r\n\t  NumberNewtonIterations  1\r\n\t  MaxStep\t\t  \"auto\"\r\n\t  MinStep\t\t  \"auto\"\r\n\t  MaxConsecutiveMinStep\t  \"1\"\r\n\t  RelTol\t\t  \"1e-3\"\r\n\t  SolverMode\t\t  \"Auto\"\r\n\t  EnableConcurrentExecution off\r\n\t  ConcurrentTasks\t  off\r\n\t  Solver\t\t  \"ode45\"\r\n\t  SolverName\t\t  \"ode45\"\r\n\t  SolverJacobianMethodControl \"auto\"\r\n\t  ShapePreserveControl\t  \"DisableAll\"\r\n\t  ZeroCrossControl\t  \"UseLocalSettings\"\r\n\t  ZeroCrossAlgorithm\t  \"Nonadaptive\"\r\n\t  AlgebraicLoopSolver\t  \"TrustRegion\"\r\n\t  SolverResetMethod\t  \"Fast\"\r\n\t  PositivePriorityOrder\t  off\r\n\t  AutoInsertRateTranBlk\t  off\r\n\t  SampleTimeConstraint\t  \"Unconstrained\"\r\n\t  InsertRTBMode\t\t  \"Whenever possible\"\r\n\t}\r\n\tSimulink.DataIOCC {\r\n\t  $ObjectID\t\t  10\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Decimation\t\t  \"1\"\r\n\t  ExternalInput\t\t  \"[t, u]\"\r\n\t  FinalStateName\t  \"xFinal\"\r\n\t  InitialState\t\t  \"xInitial\"\r\n\t  LimitDataPoints\t  on\r\n\t  MaxDataPoints\t\t  \"1000\"\r\n\t  LoadExternalInput\t  off\r\n\t  LoadInitialState\t  off\r\n\t  SaveFinalState\t  off\r\n\t  SaveCompleteFinalSimState off\r\n\t  SaveFormat\t\t  \"Array\"\r\n\t  SignalLoggingSaveFormat \"ModelDataLogs\"\r\n\t  SaveOutput\t\t  on\r\n\t  SaveState\t\t  off\r\n\t  SignalLogging\t\t  on\r\n\t  DSMLogging\t\t  on\r\n\t  InspectSignalLogs\t  off\r\n\t  SaveTime\t\t  on\r\n\t  ReturnWorkspaceOutputs  off\r\n\t  StateSaveName\t\t  \"xout\"\r\n\t  TimeSaveName\t\t  \"tout\"\r\n\t  OutputSaveName\t  \"yout\"\r\n\t  SignalLoggingName\t  \"logsout\"\r\n\t  DSMLoggingName\t  \"dsmout\"\r\n\t  OutputOption\t\t  \"RefineOutputTimes\"\r\n\t  OutputTimes\t\t  \"[]\"\r\n\t  ReturnWorkspaceOutputsName \"out\"\r\n\t  Refine\t\t  \"1\"\r\n\t}\r\n\tSimulink.OptimizationCC {\r\n\t  $ObjectID\t\t  11\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    7\r\n\t    Cell\t\t    \"BooleansAsBitfields\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsAs\"\r\n\t    Cell\t\t    \"PassReuseOutputArgsThreshold\"\r\n\t    Cell\t\t    \"ZeroExternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"ZeroInternalMemoryAtStartup\"\r\n\t    Cell\t\t    \"OptimizeModelRefInitCode\"\r\n\t    Cell\t\t    \"NoFixptDivByZeroProtection\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  BlockReduction\t  on\r\n\t  BooleanDataType\t  on\r\n\t  ConditionallyExecuteInputs on\r\n\t  InlineParams\t\t  off\r\n\t  UseIntDivNetSlope\t  off\r\n\t  UseFloatMulNetSlope\t  off\r\n\t  DefaultUnderspecifiedDataType\t\"double\"\r\n\t  UseSpecifiedMinMax\t  off\r\n\t  InlineInvariantSignals  off\r\n\t  OptimizeBlockIOStorage  on\r\n\t  BufferReuse\t\t  on\r\n\t  EnhancedBackFolding\t  off\r\n\t  StrengthReduction\t  off\r\n\t  ExpressionFolding\t  on\r\n\t  BooleansAsBitfields\t  off\r\n\t  BitfieldContainerType\t  \"uint_T\"\r\n\t  EnableMemcpy\t\t  on\r\n\t  MemcpyThreshold\t  64\r\n\t  PassReuseOutputArgsAs\t  \"Structure reference\"\r\n\t  ExpressionDepthLimit\t  2147483647\r\n\t  FoldNonRolledExpr\t  on\r\n\t  LocalBlockOutputs\t  on\r\n\t  RollThreshold\t\t  5\r\n\t  SystemCodeInlineAuto\t  off\r\n\t  StateBitsets\t\t  off\r\n\t  DataBitsets\t\t  off\r\n\t  ActiveStateOutputEnumStorageType \"Native Integer\"\r\n\t  UseTempVars\t\t  off\r\n\t  ZeroExternalMemoryAtStartup on\r\n\t  ZeroInternalMemoryAtStartup on\r\n\t  InitFltsAndDblsToZero\t  off\r\n\t  NoFixptDivByZeroProtection off\r\n\t  EfficientFloat2IntCast  off\r\n\t  EfficientMapNaN2IntZero on\r\n\t  OptimizeModelRefInitCode off\r\n\t  LifeSpan\t\t  \"inf\"\r\n\t  MaxStackSize\t\t  \"Inherit from target\"\r\n\t  BufferReusableBoundary  on\r\n\t  SimCompilerOptimization \"Off\"\r\n\t  AccelVerboseBuild\t  off\r\n\t  ParallelExecutionInRapidAccelerator on\r\n\t}\r\n\tSimulink.DebuggingCC {\r\n\t  $ObjectID\t\t  12\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  RTPrefix\t\t  \"error\"\r\n\t  ConsistencyChecking\t  \"none\"\r\n\t  ArrayBoundsChecking\t  \"none\"\r\n\t  SignalInfNanChecking\t  \"none\"\r\n\t  SignalRangeChecking\t  \"none\"\r\n\t  ReadBeforeWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterWriteMsg\t  \"UseLocalSettings\"\r\n\t  WriteAfterReadMsg\t  \"UseLocalSettings\"\r\n\t  AlgebraicLoopMsg\t  \"warning\"\r\n\t  ArtificialAlgebraicLoopMsg \"warning\"\r\n\t  SaveWithDisabledLinksMsg \"warning\"\r\n\t  SaveWithParameterizedLinksMsg\t\"warning\"\r\n\t  CheckSSInitialOutputMsg on\r\n\t  UnderspecifiedInitializationDetection\t\"Classic\"\r\n\t  MergeDetectMultiDrivingBlocksExec \"none\"\r\n\t  CheckExecutionContextPreStartOutputMsg off\r\n\t  CheckExecutionContextRuntimeOutputMsg\toff\r\n\t  SignalResolutionControl \"UseLocalSettings\"\r\n\t  BlockPriorityViolationMsg \"warning\"\r\n\t  MinStepSizeMsg\t  \"warning\"\r\n\t  TimeAdjustmentMsg\t  \"none\"\r\n\t  MaxConsecutiveZCsMsg\t  \"error\"\r\n\t  MaskedZcDiagnostic\t  \"warning\"\r\n\t  IgnoredZcDiagnostic\t  \"warning\"\r\n\t  SolverPrmCheckMsg\t  \"warning\"\r\n\t  InheritedTsInSrcMsg\t  \"warning\"\r\n\t  DiscreteInheritContinuousMsg \"warning\"\r\n\t  MultiTaskDSMMsg\t  \"error\"\r\n\t  MultiTaskCondExecSysMsg \"error\"\r\n\t  MultiTaskRateTransMsg\t  \"error\"\r\n\t  SingleTaskRateTransMsg  \"none\"\r\n\t  TasksWithSamePriorityMsg \"warning\"\r\n\t  SigSpecEnsureSampleTimeMsg \"warning\"\r\n\t  CheckMatrixSingularityMsg \"none\"\r\n\t  IntegerOverflowMsg\t  \"warning\"\r\n\t  Int32ToFloatConvMsg\t  \"warning\"\r\n\t  ParameterDowncastMsg\t  \"error\"\r\n\t  ParameterOverflowMsg\t  \"error\"\r\n\t  ParameterUnderflowMsg\t  \"none\"\r\n\t  ParameterPrecisionLossMsg \"warning\"\r\n\t  ParameterTunabilityLossMsg \"warning\"\r\n\t  FixptConstUnderflowMsg  \"none\"\r\n\t  FixptConstOverflowMsg\t  \"none\"\r\n\t  FixptConstPrecisionLossMsg \"none\"\r\n\t  UnderSpecifiedDataTypeMsg \"none\"\r\n\t  UnnecessaryDatatypeConvMsg \"none\"\r\n\t  VectorMatrixConversionMsg \"none\"\r\n\t  InvalidFcnCallConnMsg\t  \"error\"\r\n\t  FcnCallInpInsideContextMsg \"UseLocalSettings\"\r\n\t  SignalLabelMismatchMsg  \"none\"\r\n\t  UnconnectedInputMsg\t  \"warning\"\r\n\t  UnconnectedOutputMsg\t  \"warning\"\r\n\t  UnconnectedLineMsg\t  \"warning\"\r\n\t  SFcnCompatibilityMsg\t  \"none\"\r\n\t  FrameProcessingCompatibilityMsg \"warning\"\r\n\t  UniqueDataStoreMsg\t  \"none\"\r\n\t  BusObjectLabelMismatch  \"warning\"\r\n\t  RootOutportRequireBusObject \"warning\"\r\n\t  AssertControl\t\t  \"UseLocalSettings\"\r\n\t  EnableOverflowDetection off\r\n\t  ModelReferenceIOMsg\t  \"none\"\r\n\t  ModelReferenceMultiInstanceNormalModeStructChecksumCheck \"error\"\r\n\t  ModelReferenceVersionMismatchMessage \"none\"\r\n\t  ModelReferenceIOMismatchMessage \"none\"\r\n\t  ModelReferenceCSMismatchMessage \"none\"\r\n\t  UnknownTsInhSupMsg\t  \"warning\"\r\n\t  ModelReferenceDataLoggingMessage \"warning\"\r\n\t  ModelReferenceSymbolNameMessage \"warning\"\r\n\t  ModelReferenceExtraNoncontSigs \"error\"\r\n\t  StateNameClashWarn\t  \"warning\"\r\n\t  SimStateInterfaceChecksumMismatchMsg \"warning\"\r\n\t  SimStateOlderReleaseMsg \"error\"\r\n\t  InitInArrayFormatMsg\t  \"warning\"\r\n\t  StrictBusMsg\t\t  \"ErrorLevel1\"\r\n\t  BusNameAdapt\t\t  \"WarnAndRepair\"\r\n\t  NonBusSignalsTreatedAsBus \"none\"\r\n\t  LoggingUnavailableSignals \"error\"\r\n\t  BlockIODiagnostic\t  \"none\"\r\n\t  SFUnusedDataAndEventsDiag \"warning\"\r\n\t  SFUnexpectedBacktrackingDiag \"warning\"\r\n\t  SFInvalidInputDataAccessInChartInitDiag \"warning\"\r\n\t  SFNoUnconditionalDefaultTransitionDiag \"warning\"\r\n\t  SFTransitionOutsideNaturalParentDiag \"warning\"\r\n\t  SFUnconditionalTransitionShadowingDiag \"warning\"\r\n\t  SFUndirectedBroadcastEventsDiag \"warning\"\r\n\t  SFTransitionActionBeforeConditionDiag\t\"warning\"\r\n\t}\r\n\tSimulink.HardwareCC {\r\n\t  $ObjectID\t\t  13\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  ProdBitPerChar\t  8\r\n\t  ProdBitPerShort\t  16\r\n\t  ProdBitPerInt\t\t  32\r\n\t  ProdBitPerLong\t  32\r\n\t  ProdBitPerLongLong\t  64\r\n\t  ProdBitPerFloat\t  32\r\n\t  ProdBitPerDouble\t  64\r\n\t  ProdBitPerPointer\t  32\r\n\t  ProdLargestAtomicInteger \"Char\"\r\n\t  ProdLargestAtomicFloat  \"None\"\r\n\t  ProdIntDivRoundTo\t  \"Undefined\"\r\n\t  ProdEndianess\t\t  \"Unspecified\"\r\n\t  ProdWordSize\t\t  32\r\n\t  ProdShiftRightIntArith  on\r\n\t  ProdLongLongMode\t  off\r\n\t  ProdHWDeviceType\t  \"32-bit Generic\"\r\n\t  TargetBitPerChar\t  8\r\n\t  TargetBitPerShort\t  16\r\n\t  TargetBitPerInt\t  32\r\n\t  TargetBitPerLong\t  32\r\n\t  TargetBitPerLongLong\t  64\r\n\t  TargetBitPerFloat\t  32\r\n\t  TargetBitPerDouble\t  64\r\n\t  TargetBitPerPointer\t  32\r\n\t  TargetLargestAtomicInteger \"Char\"\r\n\t  TargetLargestAtomicFloat \"None\"\r\n\t  TargetShiftRightIntArith on\r\n\t  TargetLongLongMode\t  off\r\n\t  TargetIntDivRoundTo\t  \"Undefined\"\r\n\t  TargetEndianess\t  \"Unspecified\"\r\n\t  TargetWordSize\t  32\r\n\t  TargetTypeEmulationWarnSuppressLevel 0\r\n\t  TargetPreprocMaxBitsSint 32\r\n\t  TargetPreprocMaxBitsUint 32\r\n\t  TargetHWDeviceType\t  \"Specified\"\r\n\t  TargetUnknown\t\t  off\r\n\t  ProdEqTarget\t\t  on\r\n\t}\r\n\tSimulink.ModelReferenceCC {\r\n\t  $ObjectID\t\t  14\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  UpdateModelReferenceTargets \"IfOutOfDateOrStructuralChange\"\r\n\t  CheckModelReferenceTargetMessage \"error\"\r\n\t  EnableParallelModelReferenceBuilds off\r\n\t  ParallelModelReferenceErrorOnInvalidPool on\r\n\t  ParallelModelReferenceMATLABWorkerInit \"None\"\r\n\t  ModelReferenceNumInstancesAllowed \"Multi\"\r\n\t  PropagateVarSize\t  \"Infer from blocks in model\"\r\n\t  ModelReferencePassRootInputsByReference on\r\n\t  ModelReferenceMinAlgLoopOccurrences off\r\n\t  PropagateSignalLabelsOutOfModel off\r\n\t  SupportModelReferenceSimTargetCustomCode off\r\n\t}\r\n\tSimulink.SFSimCC {\r\n\t  $ObjectID\t\t  15\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  SFSimEnableDebug\t  on\r\n\t  SFSimOverflowDetection  on\r\n\t  SFSimEcho\t\t  on\r\n\t  SimBlas\t\t  on\r\n\t  SimCtrlC\t\t  on\r\n\t  SimExtrinsic\t\t  on\r\n\t  SimIntegrity\t\t  on\r\n\t  SimUseLocalCustomCode\t  off\r\n\t  SimParseCustomCode\t  on\r\n\t  SimBuildMode\t\t  \"sf_incremental_build\"\r\n\t  SimGenImportedTypeDefs  off\r\n\t}\r\n\tSimulink.RTWCC {\r\n\t  $BackupClass\t\t  \"Simulink.RTWCC\"\r\n\t  $ObjectID\t\t  16\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    6\r\n\t    Cell\t\t    \"IncludeHyperlinkInReport\"\r\n\t    Cell\t\t    \"GenerateTraceInfo\"\r\n\t    Cell\t\t    \"GenerateTraceReport\"\r\n\t    Cell\t\t    \"GenerateTraceReportSl\"\r\n\t    Cell\t\t    \"GenerateTraceReportSf\"\r\n\t    Cell\t\t    \"GenerateTraceReportEml\"\r\n\t    PropName\t\t    \"DisabledProps\"\r\n\t  }\r\n\t  SystemTargetFile\t  \"grt.tlc\"\r\n\t  TLCOptions\t\t  \"\"\r\n\t  GenCodeOnly\t\t  off\r\n\t  MakeCommand\t\t  \"make_rtw\"\r\n\t  GenerateMakefile\t  on\r\n\t  PackageGeneratedCodeAndArtifacts off\r\n\t  PackageName\t\t  \"\"\r\n\t  TemplateMakefile\t  \"grt_default_tmf\"\r\n\t  PostCodeGenCommand\t  \"\"\r\n\t  Description\t\t  \"\"\r\n\t  GenerateReport\t  off\r\n\t  SaveLog\t\t  off\r\n\t  RTWVerbose\t\t  on\r\n\t  RetainRTWFile\t\t  off\r\n\t  ProfileTLC\t\t  off\r\n\t  TLCDebug\t\t  off\r\n\t  TLCCoverage\t\t  off\r\n\t  TLCAssert\t\t  off\r\n\t  ProcessScriptMode\t  \"Default\"\r\n\t  ConfigurationMode\t  \"Optimized\"\r\n\t  ProcessScript\t\t  \"\"\r\n\t  ConfigurationScript\t  \"\"\r\n\t  ConfigAtBuild\t\t  off\r\n\t  RTWUseLocalCustomCode\t  off\r\n\t  RTWUseSimCustomCode\t  off\r\n\t  CustomSourceCode\t  \"\"\r\n\t  CustomHeaderCode\t  \"\"\r\n\t  CustomInclude\t\t  \"\"\r\n\t  CustomSource\t\t  \"\"\r\n\t  CustomLibrary\t\t  \"\"\r\n\t  CustomInitializer\t  \"\"\r\n\t  CustomTerminator\t  \"\"\r\n\t  Toolchain\t\t  \"Automatically locate an installed toolchain\"\r\n\t  BuildConfiguration\t  \"Faster Builds\"\r\n\t  IncludeHyperlinkInReport off\r\n\t  LaunchReport\t\t  off\r\n\t  PortableWordSizes\t  off\r\n\t  GenerateErtSFunction\t  off\r\n\t  CreateSILPILBlock\t  \"None\"\r\n\t  CodeExecutionProfiling  off\r\n\t  CodeExecutionProfileVariable \"executionProfile\"\r\n\t  CodeProfilingSaveOptions \"SummaryOnly\"\r\n\t  CodeProfilingInstrumentation off\r\n\t  SILDebugging\t\t  off\r\n\t  TargetLang\t\t  \"C\"\r\n\t  IncludeBusHierarchyInRTWFileBlockHierarchyMap\toff\r\n\t  IncludeERTFirstTime\t  off\r\n\t  GenerateTraceInfo\t  off\r\n\t  GenerateTraceReport\t  off\r\n\t  GenerateTraceReportSl\t  off\r\n\t  GenerateTraceReportSf\t  off\r\n\t  GenerateTraceReportEml  off\r\n\t  GenerateCodeInfo\t  off\r\n\t  GenerateWebview\t  off\r\n\t  GenerateCodeMetricsReport off\r\n\t  GenerateCodeReplacementReport\toff\r\n\t  RTWCompilerOptimization \"Off\"\r\n\t  RTWCustomCompilerOptimizations \"\"\r\n\t  CheckMdlBeforeBuild\t  \"Off\"\r\n\t  CustomRebuildMode\t  \"OnUpdate\"\r\n\t  DataInitializer\t  \"\"\r\n\t  SharedConstantsCachingThreshold 1024\r\n\t  Array {\r\n\t    Type\t\t    \"Handle\"\r\n\t    Dimension\t\t    2\r\n\t    Simulink.CodeAppCC {\r\n\t      $ObjectID\t\t      17\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t19\r\n\t\tCell\t\t\t\"IgnoreCustomStorageClasses\"\r\n\t\tCell\t\t\t\"IgnoreTestpoints\"\r\n\t\tCell\t\t\t\"InsertBlockDesc\"\r\n\t\tCell\t\t\t\"SFDataObjDesc\"\r\n\t\tCell\t\t\t\"SimulinkDataObjDesc\"\r\n\t\tCell\t\t\t\"DefineNamingRule\"\r\n\t\tCell\t\t\t\"SignalNamingRule\"\r\n\t\tCell\t\t\t\"ParamNamingRule\"\r\n\t\tCell\t\t\t\"InlinedPrmAccess\"\r\n\t\tCell\t\t\t\"CustomSymbolStr\"\r\n\t\tCell\t\t\t\"CustomSymbolStrGlobalVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrType\"\r\n\t\tCell\t\t\t\"CustomSymbolStrField\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcn\"\r\n\t\tCell\t\t\t\"CustomSymbolStrFcnArg\"\r\n\t\tCell\t\t\t\"CustomSymbolStrBlkIO\"\r\n\t\tCell\t\t\t\"CustomSymbolStrTmpVar\"\r\n\t\tCell\t\t\t\"CustomSymbolStrMacro\"\r\n\t\tCell\t\t\t\"ReqsInCode\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      ForceParamTrailComments off\r\n\t      GenerateComments\t      on\r\n\t      IgnoreCustomStorageClasses on\r\n\t      IgnoreTestpoints\t      off\r\n\t      IncHierarchyInIds\t      off\r\n\t      MaxIdLength\t      31\r\n\t      PreserveName\t      off\r\n\t      PreserveNameWithParent  off\r\n\t      ShowEliminatedStatement off\r\n\t      OperatorAnnotations     off\r\n\t      IncAutoGenComments      off\r\n\t      SimulinkDataObjDesc     off\r\n\t      SFDataObjDesc\t      off\r\n\t      MATLABFcnDesc\t      off\r\n\t      IncDataTypeInIds\t      off\r\n\t      MangleLength\t      1\r\n\t      CustomSymbolStrGlobalVar \"$R$N$M\"\r\n\t      CustomSymbolStrType     \"$N$R$M_T\"\r\n\t      CustomSymbolStrField    \"$N$M\"\r\n\t      CustomSymbolStrFcn      \"$R$N$M$F\"\r\n\t      CustomSymbolStrFcnArg   \"rt$I$N$M\"\r\n\t      CustomSymbolStrBlkIO    \"rtb_$N$M\"\r\n\t      CustomSymbolStrTmpVar   \"$N$M\"\r\n\t      CustomSymbolStrMacro    \"$R$N$M\"\r\n\t      CustomSymbolStrUtil     \"$N$C\"\r\n\t      DefineNamingRule\t      \"None\"\r\n\t      ParamNamingRule\t      \"None\"\r\n\t      SignalNamingRule\t      \"None\"\r\n\t      InsertBlockDesc\t      off\r\n\t      InsertPolySpaceComments off\r\n\t      SimulinkBlockComments   on\r\n\t      MATLABSourceComments    off\r\n\t      EnableCustomComments    off\r\n\t      InternalIdentifier      \"Shortened\"\r\n\t      InlinedPrmAccess\t      \"Literals\"\r\n\t      ReqsInCode\t      off\r\n\t      UseSimReservedNames     off\r\n\t    }\r\n\t    Simulink.GRTTargetCC {\r\n\t      $BackupClass\t      \"Simulink.TargetCC\"\r\n\t      $ObjectID\t\t      18\r\n\t      Version\t\t      \"1.13.1\"\r\n\t      Array {\r\n\t\tType\t\t\t\"Cell\"\r\n\t\tDimension\t\t16\r\n\t\tCell\t\t\t\"GeneratePreprocessorConditionals\"\r\n\t\tCell\t\t\t\"IncludeMdlTerminateFcn\"\r\n\t\tCell\t\t\t\"CombineOutputUpdateFcns\"\r\n\t\tCell\t\t\t\"SuppressErrorStatus\"\r\n\t\tCell\t\t\t\"ERTCustomFileBanners\"\r\n\t\tCell\t\t\t\"GenerateSampleERTMain\"\r\n\t\tCell\t\t\t\"GenerateTestInterfaces\"\r\n\t\tCell\t\t\t\"ModelStepFunctionPrototypeControlCompliant\"\r\n\t\tCell\t\t\t\"CPPClassGenCompliant\"\r\n\t\tCell\t\t\t\"SupportNonInlinedSFcns\"\r\n\t\tCell\t\t\t\"PurelyIntegerCode\"\r\n\t\tCell\t\t\t\"PortableWordSizes\"\r\n\t\tCell\t\t\t\"SupportComplex\"\r\n\t\tCell\t\t\t\"SupportAbsoluteTime\"\r\n\t\tCell\t\t\t\"SupportContinuousTime\"\r\n\t\tCell\t\t\t\"GenerateAllocFcn\"\r\n\t\tPropName\t\t\"DisabledProps\"\r\n\t      }\r\n\t      TargetFcnLib\t      \"ansi_tfl_table_tmw.mat\"\r\n\t      TargetLibSuffix\t      \"\"\r\n\t      TargetPreCompLibLocation \"\"\r\n\t      CodeReplacementLibrary  \"ANSI_C\"\r\n\t      UtilityFuncGeneration   \"Auto\"\r\n\t      ERTMultiwordTypeDef     \"System defined\"\r\n\t      ERTMultiwordLength      256\r\n\t      MultiwordLength\t      2048\r\n\t      GenerateFullHeader      on\r\n\t      GenerateSampleERTMain   off\r\n\t      GenerateTestInterfaces  off\r\n\t      IsPILTarget\t      off\r\n\t      ModelReferenceCompliant on\r\n\t      ParMdlRefBuildCompliant on\r\n\t      CompOptLevelCompliant   on\r\n\t      ConcurrentExecutionCompliant on\r\n\t      IncludeMdlTerminateFcn  on\r\n\t      GeneratePreprocessorConditionals \"Disable all\"\r\n\t      CombineOutputUpdateFcns off\r\n\t      CombineSignalStateStructs\toff\r\n\t      SuppressErrorStatus     off\r\n\t      ERTFirstTimeCompliant   off\r\n\t      IncludeFileDelimiter    \"Auto\"\r\n\t      ERTCustomFileBanners    off\r\n\t      SupportAbsoluteTime     on\r\n\t      LogVarNameModifier      \"rt_\"\r\n\t      MatFileLogging\t      on\r\n\t      MultiInstanceERTCode    off\r\n\t      SupportNonFinite\t      on\r\n\t      SupportComplex\t      on\r\n\t      PurelyIntegerCode\t      off\r\n\t      SupportContinuousTime   on\r\n\t      SupportNonInlinedSFcns  on\r\n\t      SupportVariableSizeSignals off\r\n\t      EnableShiftOperators    on\r\n\t      ParenthesesLevel\t      \"Nominal\"\r\n\t      MATLABClassNameForMDSCustomization \"Simulink.SoftwareTarget.GRTCustomization\"\r\n\t      ModelStepFunctionPrototypeControlCompliant off\r\n\t      CPPClassGenCompliant    off\r\n\t      AutosarCompliant\t      off\r\n\t      GRTInterface\t      on\r\n\t      GenerateAllocFcn\t      off\r\n\t      UseMalloc\t\t      off\r\n\t      ExtMode\t\t      off\r\n\t      ExtModeStaticAlloc      off\r\n\t      ExtModeTesting\t      off\r\n\t      ExtModeStaticAllocSize  1000000\r\n\t      ExtModeTransport\t      0\r\n\t      ExtModeMexFile\t      \"ext_comm\"\r\n\t      ExtModeIntrfLevel\t      \"Level1\"\r\n\t      RTWCAPISignals\t      off\r\n\t      RTWCAPIParams\t      off\r\n\t      RTWCAPIStates\t      off\r\n\t      RTWCAPIRootIO\t      off\r\n\t      GenerateASAP2\t      off\r\n\t    }\r\n\t    PropName\t\t    \"Components\"\r\n\t  }\r\n\t}\r\n\thdlcoderui.hdlcc {\r\n\t  $ObjectID\t\t  19\r\n\t  Version\t\t  \"1.13.1\"\r\n\t  Description\t\t  \"HDL Coder custom configuration component\"\r\n\t  Name\t\t\t  \"HDL Coder\"\r\n\t  Array {\r\n\t    Type\t\t    \"Cell\"\r\n\t    Dimension\t\t    1\r\n\t    Cell\t\t    \" \"\r\n\t    PropName\t\t    \"HDLConfigFile\"\r\n\t  }\r\n\t  HDLCActiveTab\t\t  \"0\"\r\n\t}\r\n\tPropName\t\t\"Components\"\r\n      }\r\n      Name\t\t      \"Configuration\"\r\n      CurrentDlgPage\t      \"Solver\"\r\n      ConfigPrmDlgPosition     [ 200, 85, 1080, 715 ] \r\n    }\r\n    PropName\t\t    \"ConfigurationSets\"\r\n  }\r\n  Simulink.ConfigSet {\r\n    $PropName\t\t    \"ActiveConfigurationSet\"\r\n    $ObjectID\t\t    8\r\n  }\r\n  Object {\r\n    $PropName\t\t    \"DataTransfer\"\r\n    $ObjectID\t\t    20\r\n    $ClassName\t\t    \"Simulink.GlobalDataTransfer\"\r\n    DefaultTransitionBetweenSyncTasks \"Ensure deterministic transfer (maximum delay)\"\r\n    DefaultTransitionBetweenAsyncTasks \"Ensure data integrity only\"\r\n    DefaultTransitionBetweenContTasks \"Ensure deterministic transfer (minimum delay)\"\r\n    DefaultExtrapolationMethodBetweenContTasks \"None\"\r\n    AutoInsertRateTranBlk   [0]\r\n  }\r\n  ExplicitPartitioning\t  off\r\n  BlockDefaults {\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    NamePlacement\t    \"normal\"\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    ShowName\t\t    on\r\n    BlockRotation\t    0\r\n    BlockMirror\t\t    off\r\n  }\r\n  AnnotationDefaults {\r\n    HorizontalAlignment\t    \"center\"\r\n    VerticalAlignment\t    \"middle\"\r\n    ForegroundColor\t    \"black\"\r\n    BackgroundColor\t    \"white\"\r\n    DropShadow\t\t    off\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    10\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n    UseDisplayTextAsClickCallback off\r\n  }\r\n  LineDefaults {\r\n    FontName\t\t    \"Helvetica\"\r\n    FontSize\t\t    9\r\n    FontWeight\t\t    \"normal\"\r\n    FontAngle\t\t    \"normal\"\r\n  }\r\n  MaskDefaults {\r\n    SelfModifiable\t    \"off\"\r\n    IconFrame\t\t    \"on\"\r\n    IconOpaque\t\t    \"on\"\r\n    RunInitForIconRedraw    \"off\"\r\n    IconRotate\t\t    \"none\"\r\n    PortRotate\t\t    \"default\"\r\n    IconUnits\t\t    \"autoscale\"\r\n  }\r\n  MaskParameterDefaults {\r\n    Evaluate\t\t    \"on\"\r\n    Tunable\t\t    \"on\"\r\n    NeverSave\t\t    \"off\"\r\n    Internal\t\t    \"off\"\r\n    ReadOnly\t\t    \"off\"\r\n    Enabled\t\t    \"on\"\r\n    Visible\t\t    \"on\"\r\n    ToolTip\t\t    \"on\"\r\n  }\r\n  BlockParameterDefaults {\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Outputs\t\t      \"4\"\r\n      DisplayOption\t      \"none\"\r\n      BusSelectionMode\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      FunctionName\t      \"system\"\r\n      SFunctionModules\t      \"''\"\r\n      PortCounts\t      \"[]\"\r\n      SFunctionDeploymentMode off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      VariableName\t      \"simulink_output\"\r\n      MaxDataPoints\t      \"1000\"\r\n      Decimation\t      \"1\"\r\n      SampleTime\t      \"0\"\r\n      SaveFormat\t      \"Array\"\r\n      FixptAsFi\t\t      off\r\n      NumInputs\t\t      \"1\"\r\n    }\r\n  }\r\n  System {\r\n    Name\t\t    \"RigidbodyMPCCurvePathTracking\"\r\n    Location\t\t    [747, 133, 1783, 897]\r\n    Open\t\t    on\r\n    ModelBrowserVisibility  off\r\n    ModelBrowserWidth\t    200\r\n    ScreenColor\t\t    \"white\"\r\n    PaperOrientation\t    \"landscape\"\r\n    PaperPositionMode\t    \"auto\"\r\n    PaperType\t\t    \"A4\"\r\n    PaperUnits\t\t    \"centimeters\"\r\n    TiledPaperMargins\t    [1.270000, 1.270000, 1.270000, 1.270000]\r\n    TiledPageScale\t    1\r\n    ShowPageBoundaries\t    off\r\n    ZoomFactor\t\t    \"175\"\r\n    ReportName\t\t    \"simulink-default.rpt\"\r\n    SIDHighWatermark\t    \"140\"\r\n    Block {\r\n      BlockType\t\t      Reference\r\n      Name\t\t      \"CarSim S-Function\"\r\n      SID\t\t      \"85\"\r\n      Ports\t\t      [0, 1]\r\n      Position\t\t      [330, 179, 430, 241]\r\n      ZOrder\t\t      1\r\n      Priority\t\t      \"1\"\r\n      AttributesFormatString  \"Vehicle Code: %<VehicleCode>\"\r\n      LibraryVersion\t      \"1.4\"\r\n      FontName\t\t      \"Arial\"\r\n      FontSize\t\t      12\r\n      SourceBlock\t      \"Solver_SF/CarSim S-Function\"\r\n      SourceType\t      \"Vehicle math model library\"\r\n      VehicleCode\t      \"i_s\"\r\n      SIMFILE\t\t      \"LEO_RigidbodyMPC3TurnTracking.sim\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      Demux\r\n      Name\t\t      \"Demux\"\r\n      SID\t\t      \"135\"\r\n      Ports\t\t      [1, 2]\r\n      Position\t\t      [170, 361, 180, 439]\r\n      ZOrder\t\t      30\r\n      BlockMirror\t      on\r\n      ShowName\t\t      off\r\n      Outputs\t\t      \"[1 14]\"\r\n      DisplayOption\t      \"bar\"\r\n    }\r\n    Block {\r\n      BlockType\t\t      S-Function\r\n      Name\t\t      \"S-Function\"\r\n      SID\t\t      \"96\"\r\n      Ports\t\t      [1, 1]\r\n      Position\t\t      [260, 366, 500, 434]\r\n      ZOrder\t\t      12\r\n      BlockMirror\t      on\r\n      FunctionName\t      \"Main_CurvePathTracking_CVXGEN_Terrain\"\r\n      EnableBusSupport\t      off\r\n    }\r\n    Block {\r\n      BlockType\t\t      Terminator\r\n      Name\t\t      \"Terminator\"\r\n      SID\t\t      \"136\"\r\n      Position\t\t      [95, 405, 130, 435]\r\n      ZOrder\t\t      31\r\n      BlockMirror\t      on\r\n    }\r\n    Block {\r\n      BlockType\t\t      ToWorkspace\r\n      Name\t\t      \"To Workspace1\"\r\n      SID\t\t      \"115\"\r\n      Ports\t\t      [1]\r\n      Position\t\t      [230, 295, 290, 325]\r\n      ZOrder\t\t      19\r\n      VariableName\t      \"u\"\r\n      MaxDataPoints\t      \"inf\"\r\n      SampleTime\t      \"-1\"\r\n      SaveFormat\t      \"Structure\"\r\n    }\r\n    Line {\r\n      ZOrder\t\t      116\r\n      SrcBlock\t\t      \"CarSim S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [104, 0; 0, 190]\r\n      DstBlock\t\t      \"S-Function\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      130\r\n      SrcBlock\t\t      \"S-Function\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-46, 0]\r\n      Branch {\r\n\tZOrder\t\t\t177\r\n\tDstBlock\t\t\"Demux\"\r\n\tDstPort\t\t\t1\r\n      }\r\n      Branch {\r\n\tZOrder\t\t\t176\r\n\tPoints\t\t\t[0, -90]\r\n\tDstBlock\t\t\"To Workspace1\"\r\n\tDstPort\t\t\t1\r\n      }\r\n    }\r\n    Line {\r\n      ZOrder\t\t      178\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      2\r\n      DstBlock\t\t      \"Terminator\"\r\n      DstPort\t\t      1\r\n    }\r\n    Line {\r\n      ZOrder\t\t      188\r\n      SrcBlock\t\t      \"Demux\"\r\n      SrcPort\t\t      1\r\n      Points\t\t      [-17, 0; 0, -170; 177, 0]\r\n    }\r\n  }\r\n}\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/SaveSimData2Mat.m",
    "content": "\r\n% Sim_Data_Both_ConstantCorneringStiff = Sim_Data_Both_ConstantCornering;\r\n\r\n% save SimResult_Both.mat Sim_Data;\r\n\r\n% save SimResult_OnlyBank.mat Sim_Data;\r\n\r\n% save SimResult_OnlyCurvature.mat Sim_Data;\r\n% \r\n\r\nmu_dot3_50 = u.signals.values(:,:);\r\n\r\nsave SimData_mu_dot3_50.mat mu_dot3_50;\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/SaveWayPointCollect.m",
    "content": "\r\n% WayPoints_Collect = u.signals.values(1:2600,:);\r\n% vel, x,   y,  psi, ax,   steering, station, BankL, BankR\r\n% save WayPoints_Alt3fromFHWA_Overall_Station_Bank.mat WayPoints_Collect;\r\n\r\n% MatL = MatL(1:21,:);\r\n% save Bankangle_LeftLane_Alt3fromFHWA.mat MatL;\r\n% \r\n% MatR = MatR(1:21,:);\r\n% save eBankangle_RightLan_Alt3fromFHWA.mat MatR;\r\n\r\n\r\n% DataNoConstr =u.signals.values(2:601,:);\r\n% save CurveTracking_NoConstr_20.mat  DataNoConstr\r\n\r\nDataWithConstr =u.signals.values(2:601,:);\r\nsave CurveTracking_WithConstr_20.mat  DataWithConstr"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/TestSymbolicModel.m",
    "content": "\r\nsyms K_phi D_phi Theta_1 Theta_2 Theta_3\r\nsyms M hCG Iz Ix Vel g Calpha_f Calpha_r lf\r\n\r\n\r\nMint = [  M         0       -M*hCG          0;\r\n          0         Iz      0               0;\r\n          -M*hCG    0       Ix+M*hCG*hCG    0\r\n          0         0       0               1];\r\n\r\nNint = [-Theta_1/Vel    M*Vel-Theta_2/Vel   0           M*g;  %0-->M*g\r\n        -Theta_2/Vel    -Theta_3/Vel        0           0;\r\n        0               -M*hCG*Vel          D_phi       K_phi-M*g*hCG;\r\n        0               0                   -1          0];\r\n\r\nF1int = [-Calpha_f; -lf*Calpha_f;  0;  0];\r\nF2int = [   0               0; \r\n            0               0;\r\n            K_phi           0;\r\n            0               0];\r\n\r\nAc_11     = -Mint\\Nint; % 4*4\r\nB1cn_11   = Mint\\F1int; % 4*1\r\nB2cn_11   = Mint\\F2int; % 4*2\r\n\r\n% K_phi       = 145330;\r\n% D_phi       = 4500;\r\n% Theta_1     = Calpha_f + Calpha_r;\r\n% Theta_2     = lf*Calpha_f - lr*Calpha_r;\r\n% Theta_3     = lf*lf*Calpha_f + lr*lr*Calpha_r;\r\n% \r\n% Gai1 = hCG*Theta_2/(Ix*Vel)- hCG*M*Vel/Ix;\r\n% Acn = [ Theta_1/(M*Vel)         Theta_2/(M*Vel)-Vel     0                0                       0   0;\r\n%         Theta_2/(Iz*Vel)        Theta_3/(Iz*Vel)        0                0                       0   0;\r\n%         hCG*Theta_1/(Ix*Vel)    Gai1                    -D_phi/Ix       (hCG*M*g-K_phi)/Ix     0   0;\r\n%         0                       0                       1               0                       0   0;\r\n%         1                       0                       0               0                       0   Vel;\r\n%         0                       1                       0               0                       0   0 ];\r\n%     \r\n% B1cn = [-Calpha_f/M;\t-lf*Calpha_f/Iz;    -hCG*Calpha_f/Ix;    0;     0; \t0]; % \r\n% B2cn = [-g,              0,                 -M*g*hCG/Ix,         0,     0, \t0;\r\n%         0,               0,                  0,                  0,     0, \t-Vel]';\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_CostWeightingRegulation_QuadSlacks.m",
    "content": "function [Sl, Ql, Rdun, Wshl, dun, dul] = func_CostWeightingRegulation_QuadSlacks(MPCParameters, CostWeights, Constraints)\r\n\r\n%% ʼ\r\n    Ts      = MPCParameters.Ts;\r\n    Tsl     = MPCParameters.Tsl;\r\n    \r\n    Qephi   = CostWeights.Wephi;\r\n    Qey     = CostWeights.Wey;\r\n    RDdeltaf= CostWeights.Ddeltaf;   \r\n    Sdeltaf = CostWeights.deltaf;    \r\n    Wshar   = CostWeights.Wshar;\r\n    Wshr    = CostWeights.Wshr;\r\n\r\n    DPhimax = Constraints.DPhimax;  %  0.15 rad ==> 8.5deg\r\n    Dymax   = Constraints.Dymax;\r\n    armax   = Constraints.arlim; % 0.104rad=6deg; %0.15rad=8deg\r\n    rmax    = Constraints.rmax;    \r\n\r\n    umax    = Constraints.umax;\r\n    dumax   = Constraints.dumax;\r\n    dun     = dumax * Ts;\r\n    dul     = dumax * Tsl;\r\n    \r\n    %% Ȩӹһ\r\n    Qephi_DPhimax2  = Qephi/(DPhimax*DPhimax);\r\n    Qey_Dymax2      = Qey/(Dymax*Dymax);    \r\n    Ql              = diag([0, 0, 0, 0, Qephi_DPhimax2, Qey_Dymax2]);\r\n    \r\n    Wshr_rmax2      = Wshr/(rmax*rmax);    \r\n    Wshar_armax2    = Wshar/(armax*armax);\r\n    Wshl            = diag([Wshar_armax2, Wshr_rmax2]);\r\n   \r\n    dumax_ts2   = (dumax * dumax* Ts * Ts);% \r\n    Rdun          = RDdeltaf/dumax_ts2;\r\n%     Rdul        = Ts_Tsl * Rdun; \r\n    \r\n    Sl = Sdeltaf/(umax * umax);\r\n    \r\n    \r\nend % end of func_CostWeightingRegulation"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_FindBezierControlPointsND.m",
    "content": "% INPUT\r\n% Data: A set of \"n\" points (p1,p2,...pn).\r\n% Each point can be in N-dimension vector space\r\n% % (i.e. points to be approximated by Cubic Bezier Curve\r\n%       e.g. p for 3D p=[0   5   0;      % p1\r\n%                        1   5   0.5;    % p2\r\n%                        1.3 4.5 1;      % p3\r\n%                        2   5   2]      % p4\r\n% ptype(optional arg): parameterization type, defualt is chord-length\r\n% parameterization. user can pass 'u' or 'uniform', for uniform parameterization.\r\n\r\n% OUTPUT\r\n% Four Control Points: P0, P1, P2, P3, each in N-dimension space\r\n%  parameterized values i.e. t (optional)\r\n\r\n% OBJECTIVE\r\n% We want to find control points of Bezier Curve that fit the data\r\n% p.\r\n\r\n% SOLUTION\r\n% Least Square Method using specified Parameterization (Chord-length\r\n% defualt)\r\n% (P0 & P3) are end points of a bezier curve segment. So they\r\n% are taken equal to first and last point of data. \r\n% (P1 & P2) are obtained by partially differeciating the Sum of Square\r\n% distance between original data and parametric curve w.r.t P1 & P2 and then\r\n% solving for two unknowns P1 & P2.\r\n\r\nfunction [P0, P1, P2, P3, tout]= func_FindBezierControlPointsND(p,varargin)\r\n\r\n%%% Default Values %%%\r\nptype='';\r\ndefaultValues = {ptype};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[ptype] = deal(defaultValues{:});\r\n%%%------------------------------\r\n\r\nn=size(p,1);              % number of rows in p\r\n\r\nif (strcmpi(ptype,'u') || strcmpi(ptype,'uniform') )\r\n    [t]=linspace(0,1,n);      % uniform parameterized values (normalized b/w 0 to 1)\r\nelse\r\n    [t]=ChordLengthNormND(p); % chord-length parameterized values (normalized b/w 0 to 1)\r\nend\r\n\r\nP0=p(1,:);       % (at t=0 => P0=p1)\r\nP3=p(n,:);       % (at t=1 => P3=pn)\r\n\r\nif (n==1)      % if only one value in p\r\n   P1=P0;      % P1=P0\r\n   P2=P0;      % P2=P0\r\n   \r\nelseif (n==2)  % if only two values in p\r\n   P1=P0;      % P1=P0\r\n   P2=P3;      % P2=P3\r\n   \r\nelseif (n==3)  % if only three values in p\r\n   P1=p(2,:);    % middle point is P1\r\n   P2=p(2,:);    % middle point is P2\r\n\r\nelse\r\n    \r\n   A1=0;\tA2=0;\tA12=0;\tC1=0;\tC2=0; %initialization\r\n    for i=2:n-1 \r\n%    for i=1:n    %it will give same CPs as   i=2:n-1   \r\n      B0 = (1-t(i))^3            ;        % Bezeir Basis\r\n      B1 = ( 3*t(i)*(1-t(i))^2 ) ;\r\n      B2 = ( 3*t(i)^2*(1-t(i)) ) ;\r\n      B3 = t(i)^3                ;\r\n      \r\n      A1  = A1 +  B1^2;\r\n      A2  = A2 +  B2^2;\r\n      A12 = A12 + B1*B2;\r\n      C1 = C1 + B1*( p(i,:) - B0*P0 - B3*P3 );\r\n      C2 = C2 + B2*( p(i,:) - B0*P0 - B3*P3 );\r\n      \r\n   end\r\n   \r\n   DENOM=(A1*A2-A12*A12);       % common denominator for all points\r\n   if(DENOM==0)\r\n       P1=P0;\r\n       P2=P3;\r\n   else\r\n       P1=(A2*C1-A12*C2)/DENOM;\r\n       P2=(A1*C2-A12*C1)/DENOM;\r\n   end\r\n   \r\nend            % END of if-elseif-else conditon\r\n\r\nif(nargout==5) % if number of output argument=1 \r\n    tout=t;\r\nend\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_LocalControlInput_TwoTimeScales.m",
    "content": "function [ U1_Index, U1] = func_LocalControlInput_TwoTimeScales(MPCParameters, VehiclePara, index, fwa)\r\n\r\n%*********** Parameters Initialization *************************% \r\n    L       = VehiclePara.L;   % \r\n    Np      = MPCParameters.Np;% Ԥʱ\r\n    Ns      = MPCParameters.Ns; % Tsplit\r\n    Ts      = MPCParameters.Ts; % Set the sample time of near term\r\n    Tsl     = MPCParameters.Tsl;% Set the sample time of long term   \r\n\r\n%     U1_0    = fwa(index+1);\r\n%     TScale  = Tsl/Ts;\r\n%     U1      = zeros(Np+1,1);\r\n%     U1_Index = zeros(Np+1,1);\r\n%     for i = 1:1:Np+1\r\n%         if i <= Ns  % u0~u_{Ns-1}\r\n%             U1_Index(i)  = index+i;\r\n%             U1(i)       = fwa(index+i);\r\n%         else\r\n%             temp        = TScale*(i-Ns)+Ns;\r\n%             U1_Index(i)  = index+temp;\r\n%             U1(i)       = fwa(index+temp);     \r\n%         end\r\n%     end  \r\n\r\n    U1          = zeros(Np+1,1);\r\n    U1_Index    = zeros(Np+1,1);\r\n    for i = 1:1:Np+1\r\n        U1_Index(i)  = index+i;\r\n        U1(i)        = fwa(index+i);        \r\n    end\r\n\r\n    \r\nend"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_RLSFilter_Calpha_f.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_f(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_f, Num_f, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_f: is also called the \"forgetting\" exponential weight factor\r\n%     Num_f is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_f B_f lambda_f  Num_f  Rinv_f  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_f = d;\r\n%         delta = delta_n;\r\n        Num_f = FIR_Num;\r\n        Rinv_f = delta_n*eye(Num_f);\r\n        F_f = zeros(Num_f,1);\r\n        B_f = zeros(Num_f,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_f:-1:2\r\n            F_f(J) = F_f(J-1);\r\n        end;\r\n        F_f(1) = f;\r\n        % Perform the convolution\r\n        y= F_f'*B_f;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_f*F_f/(lambda_f + F_f'*Rinv_f*F_f);\r\n        % Update Rinv_f\r\n        Rinvn = (Rinv_f - K*F_f'*Rinv_f)/lambda_f;\r\n        % Update the filter coefficients\r\n        B_f = B_f + K*error;\r\n        Bout = B_f;\r\n        Rinv_f = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_RLSFilter_Calpha_r.m",
    "content": "function [y, Bout] = func_RLSFilter_Calpha_r(f, d, FIR_Num, delta_n )\r\n%----------------------------------------------------------%\r\n% RLSFilt-Recursive Least-Squares FIR filter demonstration\r\n% Usage : \r\n% 1) Initialization:\r\n%     y = RLSFilt('initial', lambda_r, Num_r, delta)\r\n%     d = Lambda: is the convergence rate parameter.\r\n%     d = lambda_r: is also called the \"forgetting\" exponential weight factor\r\n%     Num_r is the filter length\r\n%     delta are the initial diagonal R^{-1}(n) matrix elements.\r\n%     Example:\r\n%     [y, e] = RLSFilt('initial', .95, 51, 0.01);\r\n%     Note: RLSFilt returnsy=0 for initialization\r\n% 2) Filtering:\r\n%     [y, b] = RLSFilt(f, d);\r\n%     where f is a single input value,\r\n%     d is the desired value, and\r\n%     y is the computed output value,\r\n%     b is the coefficient vector.\r\n%----------------------------------------------------------%\r\n    persistent F_r B_r lambda_r  Num_r  Rinv_r  %delta\r\n    % The following is initialization, and is executed once\r\n    if (ischar(f) && strcmp(f,'initial')) % Initial\r\n        lambda_r = d;\r\n%         delta = delta_n;\r\n        Num_r = FIR_Num;\r\n        Rinv_r = delta_n*eye(Num_r);\r\n        F_r = zeros(Num_r,1);\r\n        B_r = zeros(Num_r,1);\r\n        y = 0;\r\n        Bout = 0;\r\n    else  % Filtering:\r\n        for J = Num_r:-1:2\r\n            F_r(J) = F_r(J-1);\r\n        end;\r\n        F_r(1) = f;\r\n        % Perform the convolution\r\n        y= F_r'*B_r;\r\n        error=d-y;\r\n        % Kalman gains\r\n        K = Rinv_r*F_r/(lambda_r + F_r'*Rinv_r*F_r);\r\n        % Update Rinv_r\r\n        Rinvn = (Rinv_r - K*F_r'*Rinv_r)/lambda_r;\r\n        % Update the filter coefficients\r\n        B_r = B_r + K*error;\r\n        Bout = B_r;\r\n        Rinv_r = Rinvn;\r\n    end\r\nend"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated.m",
    "content": "function [WPIndex, RefP, RefU, Uaug, Uaug_0, PrjP, Roll_BaknR] = func_RefTraj_LocalPlanning_TwoTimeScales_Spatial_Integrated( MPCParameters, VehiclePara, WayPoints_Index, WayPoints_Collect, VehStateMeasured)\r\n%***************************************************************%\r\n%  PrjP\r\n% ҵȫ·Ͼ복ĵ\r\n% ΣݲͬĲsѡһЩвο㲢תϵ¡οϢ[s,x,y,bank]\r\n% ٴΣԳϵµx,yBezierֵ߲ĺǺʡ4\r\n% ͬʱԵ·Ĳsϼ\r\n% 󣬽οĲRefP, RefUUaug\r\n\r\n% Input:\r\n% MPCParameters\r\n% WayPoints_Index\r\n% WayPoints_Collect\r\n% VehStateMeasured\r\n% \r\n% Output:\r\n% WPIndex \r\n%     > 0Normal, WPIndex = index_min;\r\n%     0:error,index_min<1\r\n%     -1: index_min = WPNum,ȫ·ľͷͣ\r\n\r\n%---------------------------------------------------------------%\r\n% Published by: Kai Liu\r\n% Email:leoking1025@gmail.com\r\n% My github: https://github.com/leoking99-BIT\r\n%***************************************************************%\r\n\r\n%*********** Parameters Initialization *************************% \r\n    L       = VehiclePara.L;   % \r\n    Np      = MPCParameters.Np;% Ԥʱ\r\n    Ns      = MPCParameters.Ns; % Tsplit\r\n    Ts      = MPCParameters.Ts; % Set the sample time of near term\r\n    Tsl     = MPCParameters.Tsl;% Set the sample time of long term   \r\n\r\n    %------Measured or Estimated vehicle status\r\n    Vel     = VehStateMeasured.x_dot;   % 20; % \r\n    PosX    = VehStateMeasured.X;\r\n    PosY    = VehStateMeasured.Y;\r\n    PosPsi  = VehStateMeasured.phi;      \r\n    Roll_Shad = VehStateMeasured.Roll_Shad;%rad\r\n%     Ax      = VehStateMeasured.Ax;\r\n%     fwa     = VehStateMeasured.fwa; \r\n    \r\n%*********** WaypointData2VehicleCoords ************************% \r\n    ds          = 0.1;%m\r\n    WPNum       = length(WayPoints_Collect(:,1));\r\n    \r\n    %--------ҵο·Ͼ복ĵ--------------------------%  \r\n    Dist_MIN    = 1000;\r\n    index_min   = 0;\r\n    for i=WayPoints_Index:1:WPNum \r\n        deltax  = WayPoints_Collect(i,2) - PosX;\r\n        deltay  = WayPoints_Collect(i,3) - PosY;\r\n        Dist    = sqrt(power(deltax,2) + power(deltay,2)); %·㵽ĵľ\r\n        if Dist < Dist_MIN\r\n            Dist_MIN = Dist; \r\n            index_min = i;\r\n        end\r\n    end\r\n    if (index_min < 1) \r\n        WPIndex = -1; %ûҵ򡣡\r\n    else if ( index_min >= WPNum)\r\n            WPIndex = -2; %ûҵ򡣡\r\n        else\r\n            WPIndex = index_min;\r\n        end\r\n    end\r\n    \r\n\r\n    if( WPIndex > 0 )   % ҵ\r\n    %% ѡͶӰ㣬 ȫ·ѡο㣬ת¡ͬʱѡsͶӦBank angle        \r\n        %--------------ͨͶӰ--------------------------%\r\n        [PPx,PPy,ey]=func_GetProjectPoint(WayPoints_Collect(index_min,2),... \r\n                                            WayPoints_Collect(index_min,3),... \r\n                                            WayPoints_Collect(index_min+1,2),... \r\n                                            WayPoints_Collect(index_min+1,3),... \r\n                                            PosX,... \r\n                                            PosY);\r\n        Dy          = WayPoints_Collect(index_min+1,3) - WayPoints_Collect(index_min,3);\r\n        Dx          = WayPoints_Collect(index_min+1,2) - WayPoints_Collect(index_min,2);\r\n        Psi0        = atan2(Dy, Dx);  \r\n        epsi        = Psi0 - PosPsi;\r\n        \r\n        PrjP.ey     = -ey;\r\n        PrjP.epsi   = -epsi;        \r\n        PrjP.Velr   = Vel;                                        \r\n        PrjP.xr     = PPx;\r\n        PrjP.yr     = PPy;\r\n        PrjP.psir   = Psi0;\r\n%         Kprj        = 0; Ĭ ͶӰΪ㣬Ϊһֱ\r\n        PrjP.fwar   = 0; %atan(Kprj*L);  \r\n\r\n        %-------------------i=1:Ns--ݳȫֲο·ѡο-------%\r\n        Global_x        = [];\r\n        Global_y        = [];  % ȫ·ѡ·      \r\n        Local_Sx        = [];\r\n        Local_Sy        = [];\r\n        Local_SS        = [];\r\n        Local_SB        = []; %Զʱ\r\n        StepLength_S    = Vel * Ts *  (Ns+1);% һΪʱ׼\r\n        Ns_index        = index_min; \r\n        \r\n%         %--index_min  index_min+1 ֮ͶӰ\r\n%         deltax          = PPx - PosX;\r\n%         deltay          = PPy - PosY; \r\n%         CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n%         CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi);  \r\n%         Local_Sx        = [Local_Sx; CarCoord_x];\r\n%         Local_Sy        = [Local_Sy; CarCoord_y];           \r\n%         Global_x        = [Global_x; PPx];\r\n%         Global_y        = [Global_y; PPy];\r\n%         \r\n%         Local_SS        = [Local_SS; WayPoints_Collect(i,7)];\r\n%         Local_SB        = [Local_SB; WayPoints_Collect(i,8)];       \r\n%         %--index_min+1 \r\n%         deltax          = WayPoints_Collect(index_min+1,2) - PosX;\r\n%         deltay          = WayPoints_Collect(index_min+1,3) - PosY;\r\n%         CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n%         CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi);    \r\n%         Local_Sx        = [Local_Sx; CarCoord_x];\r\n%         Local_Sy        = [Local_Sy; CarCoord_y];\r\n%         Global_x        = [Global_x; WayPoints_Collect(index_min+1,2)];\r\n%         Global_y        = [Global_y; WayPoints_Collect(index_min+1,3)];\r\n%         \r\n        tempDx          = WayPoints_Collect(index_min+1,2) - PPx;\r\n        tempDy          = WayPoints_Collect(index_min+1,3) - PPy;\r\n        Dist_1          = sqrt(power(tempDx,2) + power(tempDy,2)); %·㵽ͶӰľ \r\n\r\n        for i=index_min:1:WPNum %ڲο·ѡο,ͨתתϵ\r\n            Global_x        = [Global_x; WayPoints_Collect(i,2) ];\r\n            Global_y        = [Global_y; WayPoints_Collect(i,3) ];  %ȡȫ·\r\n            \r\n            deltax          = WayPoints_Collect(i,2) - PosX;\r\n            deltay          = WayPoints_Collect(i,3) - PosY;\r\n            CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n            CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi); % ȫ·תֲ              \r\n            Local_Sx        = [Local_Sx; CarCoord_x];\r\n            Local_Sy        = [Local_Sy; CarCoord_y];  %洢ֲµĵ \r\n    \r\n            \r\n            Local_SS        = [Local_SS; WayPoints_Collect(i,7)];\r\n            Local_SBL       = [Local_SB; WayPoints_Collect(i,8)];\r\n            Local_SBR       = [Local_SB; WayPoints_Collect(i,9)];\r\n            \r\n            Ns_index        = i-1;            \r\n            Dist_SumS       = Dist_1 + WayPoints_Collect(i,7) - WayPoints_Collect(index_min+1,7);  \r\n            if(Dist_SumS >= StepLength_S)\r\n                break;\r\n            end            \r\n        end % end of   for I=index_min+1:1:WPNum           \r\n         \r\n        %------------Ns:Np---------%\r\n        Local_Lx        = [];\r\n        Local_Ly        = [];\r\n        Local_LS        = [];\r\n        Local_LB        = [];\r\n        StepLength_L    = Vel * Tsl * (Np-Ns+1);% һΪʱ׼\r\n        Dist_SumL       = 0;      %\r\n        for i=Ns_index:1:WPNum %ڲο·ѡο,ͨתתϵ\r\n            Global_x        = [Global_x; WayPoints_Collect(i,2) ];\r\n            Global_y        = [Global_y; WayPoints_Collect(i,3) ];       \r\n            \r\n            deltax          = WayPoints_Collect(i,2) - PosX;\r\n            deltay          = WayPoints_Collect(i,3) - PosY;\r\n            CarCoord_x      = deltax * cos(PosPsi) + deltay * sin(PosPsi);\r\n            CarCoord_y      = deltay * cos(PosPsi) - deltax * sin(PosPsi); % תֲ             \r\n            Local_Lx        = [Local_Lx; CarCoord_x];\r\n            Local_Ly        = [Local_Ly; CarCoord_y]; % תֲ \r\n  \r\n            \r\n            Local_LS        = [Local_LS; WayPoints_Collect(i,7)];\r\n            Local_LBL       = [Local_LB; WayPoints_Collect(i,8)];\r\n            Local_LBR       = [Local_LB; WayPoints_Collect(i,9)];\r\n            \r\n            Dist_SumL       = WayPoints_Collect(i,7) - WayPoints_Collect(Ns_index, 7 );\r\n            if(Dist_SumL >= StepLength_L)\r\n                break;\r\n            end  \r\n        end % end of   for i=Ns_index+1:1:WPNum   \r\n        \r\n        %%\r\n        %------------ʽ------------%\r\n        if(Dist_SumS < StepLength_S) || (Dist_SumL < StepLength_L)\r\n           WPIndex = 0; %ûҵ򡣡 % reaching the end ... %--ûпȫ·󼸸ʱ걸пܻᱨ           \r\n        else\r\n             %----Զ̲BezierϣŵڿԶ-----%\r\n            MatS(:,1)=Local_Sx; \r\n            MatS(:,2)=Local_Sy;             \r\n            [ps0,ps1,ps2,ps3,ts] = func_FindBezierControlPointsND(MatS,'u'); %uniform parameterization\r\n            Scale                = round(Vel*Ts/ds);\r\n            tlocS                = linspace(0,1,Scale*(Ns+1)+1);   %㵽յȾ=0.1m,Ns+1ΣScale*Ns+1+1\r\n            MatLocalInterpS      = func_bezierInterp( ps0, ps1, ps2, ps3,tlocS);   % ֵ߲õ\r\n            \r\n            MatSB(:,1)      = Local_SS; \r\n            MatSB(:,2)      = Local_SBR;             \r\n            [psb0,psb1,psb2,psb3,tsb] = func_FindBezierControlPointsND(MatSB,'u'); %uniform parameterization\r\n            tlocS                = linspace(0,1,Ns+2);   %㵽յȾ,Np+1ΣNp+2\r\n            MatLocalInterpSB     = func_bezierInterp( psb0,psb1,psb2,psb3,tlocS);   % ֵ߲õ            \r\n            \r\n            Bezier_Sx       = zeros(Ns,1);\r\n            Bezier_Sy       = zeros(Ns,1);\r\n            Bezier_Spsi     = zeros(Ns,1);\r\n            Bezier_SK       = zeros(Ns,1);\r\n            Bezier_Sphi_t   = zeros(Ns,1);            \r\n            for i = 2:1:length(MatLocalInterpSB(:,1))-1\r\n                Bezier_Sx(i-1)    = MatLocalInterpS(Scale*(i-1),1);\r\n                Bezier_Sy(i-1)    = MatLocalInterpS(Scale*(i-1),2);\r\n                tempDx            = MatLocalInterpS(Scale*(i-1)+1,1) - MatLocalInterpS(Scale*(i-1),1);\r\n                tempDy            = MatLocalInterpS(Scale*(i-1)+1,2) - MatLocalInterpS(Scale*(i-1),2);\r\n                Bezier_Spsi(i-1)  = atan2(tempDy, tempDx);\r\n                \r\n%                 Bezier_SK(i-1)    = func_CalPathCurve(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,2));      % YC\r\n%  \r\n                Bezier_SK(i-1)    = func_CalPathCurve_Patent(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n                                       MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n                                       MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n                                       MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n                                       MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n                                       MatLocalInterpS(Scale*(i-1)+1,2));      % YC\r\n%                 \r\n%                 Bezier_SK(i-1)    = func_CalPathCurve_YU(MatLocalInterpS(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpS(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpS(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpS(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpS(Scale*(i-1)+1,2));      % YC\r\n                                   \r\n                Bezier_Sphi_t(i-1) = MatLocalInterpSB(i,2);                  \r\n            end % end of  for i = 2:1:length(MatLocalInterp(:,1))-1\r\n            \r\n\r\n            %----Գ Bezier-----%\r\n            MatL(:,1)=Local_Lx; \r\n            MatL(:,2)=Local_Ly;             \r\n            [pL0,pL1,pL2,pL3,tL] = func_FindBezierControlPointsND(MatL,'u'); %uniform parameterization\r\n            Scale                = round(Vel*Tsl/ds);\r\n            tlocL                = linspace(0,1,Scale*(Np-Ns+1)+1);   %㵽յȾ,Np-Ns+1ΣScale*Np-Ns+1+1=Scale(Np-Ns)+11\r\n            MatLocalInterpL      = func_bezierInterp( pL0, pL1, pL2, pL3,tlocL);   % ֵ߲õ\r\n            \r\n            MatLB(:,1)=Local_LS; \r\n            MatLB(:,2)=Local_LBR;             \r\n            [ps0,ps1,ps2,ps3,tL] = func_FindBezierControlPointsND(MatLB,'u'); %uniform parameterization\r\n            tlocL                = linspace(0,1,Np-Ns+2);   %㵽յȾ,Np+1ΣNp+2\r\n            MatLocalInterpLB     = func_bezierInterp( ps0, ps1, ps2, ps3,tlocL);   % ֵ߲õ    \r\n            \r\n            Bezier_Lx       = zeros(Np-Ns,1);\r\n            Bezier_Ly       = zeros(Np-Ns,1);\r\n            Bezier_Lpsi     = zeros(Np-Ns,1);\r\n            Bezier_LK       = zeros(Np-Ns,1);\r\n            Bezier_Lphi_t   = zeros(Np-Ns,1);  \r\n            for i = 2:1:length(MatLocalInterpLB(:,1))-1\r\n                Bezier_Lx(i-1)     = MatLocalInterpL(Scale*(i-1),1);\r\n                Bezier_Ly(i-1)     = MatLocalInterpL(Scale*(i-1),2);\r\n                tempDx             = MatLocalInterpL(Scale*(i-1)+1,1) - MatLocalInterpL(Scale*(i-1),1);\r\n                tempDy             = MatLocalInterpL(Scale*(i-1)+1,2) - MatLocalInterpL(Scale*(i-1),2);\r\n                Bezier_Lpsi(i-1)   = atan2(tempDy, tempDx);\r\n                \r\n%                 Bezier_LK(i-1)     = func_CalPathCurve(MatLocalInterpL(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpL(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpL(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpL(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,2));      % YC\r\n%                                    \r\n                Bezier_LK(i-1)     = func_CalPathCurve_Patent(MatLocalInterpL(Scale*(i-1)-1,1),... \t% XA\r\n                                       MatLocalInterpL(Scale*(i-1)-1,2),...    % YA\r\n                                       MatLocalInterpL(Scale*(i-1),1),...      % XB\r\n                                       MatLocalInterpL(Scale*(i-1),2),...      % YB\r\n                                       MatLocalInterpL(Scale*(i-1)+1,1),...    % XC\r\n                                       MatLocalInterpL(Scale*(i-1)+1,2));      % YC\r\n%                                    \r\n%                 Bezier_LK(i-1)     = func_CalPathCurve_YU(MatLocalInterpL(Scale*(i-1)-1,1),... \t% XA\r\n%                                        MatLocalInterpL(Scale*(i-1)-1,2),...    % YA\r\n%                                        MatLocalInterpL(Scale*(i-1),1),...      % XB\r\n%                                        MatLocalInterpL(Scale*(i-1),2),...      % YB\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,1),...    % XC\r\n%                                        MatLocalInterpL(Scale*(i-1)+1,2));      % YC                   \r\n                                   \r\n                Bezier_Lphi_t(i-1) = MatLocalInterpLB(i,2);\r\n                \r\n            end % end of  for i = 2:1:length(MatLocalInterp(:,1))-1\r\n\r\n\r\n            \r\n    %%\r\n        RefP    = cell(Np,1);        \r\n        RefU    = cell(Np,1); \r\n        for i = 1:1:Np\r\n            if i <= Ns\r\n               RefU{i,1} = atan(Bezier_SK(i)*L);                 \r\n               RefP{i,1} = [Bezier_Sx(i);\r\n                            Bezier_Sy(i);\r\n                            Bezier_Spsi(i)]; \r\n            else\r\n               RefU{i,1} = atan(Bezier_LK(i-Ns)*L); \r\n               RefP{i,1} = [Bezier_Lx(i-Ns);\r\n                            Bezier_Ly(i-Ns);\r\n                            Bezier_Lpsi(i-Ns)];                     \r\n            end\r\n        end  \r\n        \r\n\r\n        Uaug    = cell(Np,1);  \r\n        \r\n        Uaug_0  = [0;0]; % [MatLocalInterpSB(1,2); 0];  %          \r\n        for i = 1:1:Np %ǵ·ʺǵӰ\r\n            if i <= Ns                     \r\n                Uaug{i,1} = [0;0]; \r\n            else                   \r\n                Uaug{i,1} = [0;0]; \r\n            end\r\n        end  \r\n\r\n%         Uaug_0  = [0; Bezier_SK(1)];  %  [0;0]; %      \r\n%         for i = 1:1:Np %ֻǵ·\r\n%             if i <= Ns                     \r\n%                 Uaug{i,1} = [0; Bezier_SK(i)];\r\n%             else                   \r\n%                 Uaug{i,1} = [0; Bezier_LK(i-Ns)];\r\n%             end\r\n%         end  \r\n\r\n%         Uaug_0  = [Roll_Shad; 0];  %  [MatLocalInterpSB(1,2); 0];  %  \r\n%         for i = 1:1:Np %ֻ·ǵӰ\r\n%             if i <= Ns                     \r\n%                 Uaug{i,1} = [Bezier_Sphi_t(i); 0];\r\n%             else                   \r\n%                 Uaug{i,1} = [Bezier_Lphi_t(i-Ns); 0];\r\n%             end\r\n%         end  \r\n        \r\n%         Uaug_0  = [Roll_Shad; Bezier_SK(1)];  %[MatLocalInterpSB(1,2); Bezier_SK(1)];  %      \r\n%         for i = 1:1:Np %ǵ·ʺǵӰ\r\n%             if i <= Ns                     \r\n%                 Uaug{i,1} = [Bezier_Sphi_t(i); Bezier_SK(i)];\r\n%             else                   \r\n%                 Uaug{i,1} = [Bezier_Lphi_t(i-Ns); Bezier_LK(i-Ns)];\r\n%             end\r\n%         end  \r\n\r\n        Roll_BaknR = MatLocalInterpSB(1,2);\r\n        end % end of if(Dist_SumS < StepLength_S) || (Dist_SumL < StepLength_L)\r\n        \r\n    end % end of if( WPIndex > 0 )   % ҵ\r\n\r\n% %--------Plot local points and the fitted polynomial----------------%\r\n% figure\r\n% plot(Local_Sx,Local_Sy,'b*');\r\n% hold on\r\n% plot(Local_Lx,Local_Ly,'bo');    \r\n% plot(Global_x,Global_y,'k.');  \r\n% plot(Bezier_Sx,Bezier_Sy,'r+'); \r\n% plot(Bezier_Lx,Bezier_Ly,'ro'); \r\n\r\nend % end of function \r\n\r\n\r\n%==============================================================%\r\n% sub functions\r\n%==============================================================%   \r\nfunction K=GetPathHeading(Xb,Yb,Xn,Yn)\r\n    %***Way I.Heading Angle [-pi,pi]֮ *******%\r\n    AngleY=Yn-Yb;\r\n    AngleX=Xn-Xb;\r\n    K= atan2(AngleY, AngleX);\r\n    \r\n    %***Way II. Heading Angle 0~2*pi֮ *******%\r\n%     AngleY=Yn-Yb;\r\n%     AngleX=Xn-Xb;    \r\n%     \r\n%     if Xb==Xn\r\n%         if Yn>Yb\r\n%             K=pi/2;\r\n%         else\r\n%             K=3*pi/2;\r\n%         end\r\n%     else\r\n%         if Yb==Yn\r\n%             if Xn>Xb\r\n%                 K=0;\r\n%             else\r\n%                 K=pi;\r\n%             end\r\n%         else\r\n%             K=atan(AngleY/AngleX);\r\n%         end    \r\n%     end\r\n% \r\n%     %****K,ʹ֮0~360֮*****%\r\n%    if (AngleY>0&&AngleX>0)%һ\r\n%         K=K;\r\n%     elseif (AngleY>0&&AngleX<0)||(AngleY<0&&AngleX<0)%ڶ\r\n%         K=K+pi;\r\n%     else if (AngleY<0&&AngleX>0)%\r\n%             K=K+2*pi;  \r\n%         else\r\n%             K=K;\r\n%         end\r\n%    end\r\n    \r\nend % end of function\r\n\r\nfunction [PPx,PPy,de]=func_GetProjectPoint(Xb,Yb,Xn,Yn,Xc,Yc)\r\n%-------------------------------------------------------%\r\n% de㵽ֱߵľ벻ͬ෴\r\n% 㵽ֱߵľ룺Ҹ\r\n%-------------------------------------------------------%\r\n\r\n    if Xn==Xb\r\n        x=Xn;\r\n        y=Yc;\r\n        de=Xc-Xn;\r\n    else if Yb==Yn\r\n            x=Xc;\r\n            y=Yn;\r\n            de=Yn-Yc;\r\n        else\r\n            DifX=Xn-Xb;\r\n            DifY=Yn-Yb;\r\n            Kindex=DifY/DifX;\r\n            bindex=Yn-Kindex*Xn;\r\n            \r\n            K=(-1)*1/Kindex;\r\n            b=Yc-K*Xc;\r\n            x=(bindex-b)/(K-Kindex);\r\n            y=K*x+b;\r\n            de=(Kindex*Xc+bindex-Yc)/sqrt(1+Kindex*Kindex);\r\n        end     \r\n    end\r\n    PPx=x;\r\n    PPy=y;\r\n       \r\nend\r\n\r\nfunction K=func_CalPathCurve(XA,YA,XB,YB,XC,YC)\r\n    %% ͨԲģԲĵһľ\r\n    %ֱֱߵб\r\n    if XB==XA\r\n        mr=inf;\r\n    else\r\n        mr=(YB-YA)/(XB-XA);    \r\n    end\r\n    if XC==XB\r\n        mt=inf;\r\n    else\r\n        mt=(YC-YB)/(XC-XB);    \r\n    end\r\n\r\n   %ݲͬб,mtdao=1/mt;mrsubmt=1/(2*(mr-mt));\r\n    if mr==mt\r\n        Rff=inf;\r\n    else if mt==0\r\n            if mr==inf\r\n                Rff=sqrt(power((XA-XC),2)+power((YA-YC),2))/2;\r\n            else\r\n                mrsubmt=1/(2*(mr-mt));\r\n                Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n                Yff=(YB+YA)/2-(Xff-(XB+XA)/2)/mr;\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));           \r\n            end\r\n        elseif mt==inf\r\n            if mr==0\r\n                Rff=sqrt(power((XA-XC),2)+power((YA-YC),2))/2;\r\n            else\r\n                Yff=(YB+YC)/2;\r\n                Xff=(XA+XB)/2-mr*(YC-YA)/2;\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));     \r\n            end        \r\n        else\r\n            mtdao=1/mt;\r\n            if mr==0\r\n                mrsubmt=1/(2*(mr-mt));\r\n                Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n                Yff=(YB+YC)/2-mtdao*(Xff-(XB+XC)/2);\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));            \r\n            elseif mr==inf\r\n                Yff=(YA+YB)/2;\r\n                Xff=(XB+XC)/2+mt*(YA-YC)/2;\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));\r\n            else\r\n                mrsubmt=1/(2*(mr-mt));\r\n                Xff=(mr*mt*(YC-YA)+mr*(XB+XC)-mt*mrsubmt*(XA+XB));\r\n                Yff=(YB+YC)/2-mtdao*(Xff-(XB+XC)/2);\r\n                Rff=sqrt(power((XA-Xff),2)+power((YA-Yff),2));  \r\n            end\r\n        end    \r\n    end\r\n    %%\r\n    %ͨжϺǵı仯жʵ\r\n    K1=GetPathHeading(XA,YA,XB,YB);\r\n    K2=GetPathHeading(XB,YB,XC,YC);\r\n    if K2>K1 %нǱʱ\r\n        Rff=Rff;\r\n    else %нǱС˳ʱ룬K2<K1\r\n        Rff=-1*Rff;\r\n    end\r\n    \r\n    K = 1/Rff;\r\nend\r\n\r\nfunction K=func_CalPathCurve_Patent(XA,YA,XB,YB,XC,YC)\r\n    %% \r\n    x_dot       = XC - XA;\r\n    y_dot       = YC - YA;\r\n    x_dotdot    = XC + XA - 2*XB;\r\n    y_dotdot    = YC + YA - 2*YB;\r\n    temp        = x_dot*x_dot + y_dot*y_dot;\r\n    K= 4*(x_dot*y_dotdot - x_dotdot*y_dot )/ power(temp, 1.5);\r\n\r\nend\r\n\r\nfunction curvature = func_CalPathCurve_YU(X1,Y1,X2,Y2,X3,Y3)\r\n    %-----------caculate the radius of the circle first \r\n    % side one  \r\n    delta_x = X2 - X1;  \r\n    delta_y = Y2 - Y1;  \r\n    a = sqrt(power(delta_x, 2.0) + power(delta_y, 2.0));  \r\n\r\n    % side two  \r\n    delta_x = X3 - X2;  \r\n    delta_y = Y3 - Y2;  \r\n    b = sqrt(power(delta_x, 2.0) + power(delta_y, 2.0));  \r\n\r\n    % side three  \r\n    delta_x = X1 - X3;  \r\n    delta_y = Y1 - Y3;  \r\n    c = sqrt(power(delta_x, 2.0) + power(delta_y, 2.0));  \r\n    CLOSE_TO_ZERO = 0.01;\r\n    if (a < CLOSE_TO_ZERO || b < CLOSE_TO_ZERO || c < CLOSE_TO_ZERO)   \r\n        curvature = 0; \r\n    end\r\n    \r\n    %------------------------semiperimeter\r\n    s = (a + b + c) / 2.0;  \r\n    K = sqrt(abs(s * (s - a) * (s - b) * (s - c)));  \r\n    curvature = 4 * K / (a * b * c);  \r\n    \r\n    %------------ determine the sign, using cross product()\r\n    % 2άռеĲǣ A x B = |A||B|Sin()\r\n    % V1(x1, y1) X V2(x2, y2) = x1y2 C y1x2  \r\n    rotate_direction = (X2 - X1) *  (Y3 - Y2) - (Y2 - Y1) * (X3 - X2);  \r\n    if(rotate_direction < 0) %ͨжϷţжSin()ķ\r\n        %Sin()<0, ˳ʱתΪ\r\n        curvature = -curvature;  \r\n    end\r\n\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_RigidbodyDynamicalModel_FOH_Extended.m",
    "content": "%***************************************************************%\r\n% LinearTireModel_WithKs_FOH\r\n% Deem Vx as constant\r\n%***************************************************************%\r\nfunction [StateSpaceModel] = func_RigidbodyDynamicalModel_FOH_Extended(VehiclePara, MPCParameters, Vel, Calpha_f, Calpha_r)\r\n    % generate State-space model\r\n   \r\nM       = VehiclePara.m ;\r\ng       = VehiclePara.g;%m/s^2\r\nL       = VehiclePara.L;  %a = 1.11;  \r\nlf      = VehiclePara.Lr;% 1.12;%1.05%  ת0.7m\r\nlr      = VehiclePara.Lr;% 1.48;%\r\nTr      = VehiclePara.Tr ; %m\r\nhCG     = VehiclePara.hCG;%m\r\nIx      = VehiclePara.Ix;\r\nIz      = VehiclePara.Iz;\r\n\r\nNp = MPCParameters.Np;\r\nNs = MPCParameters.Ns;\r\nNx = MPCParameters.Nx;\r\nNy = MPCParameters.Ny;\r\nTs = MPCParameters.Ts;\r\nTsl = MPCParameters.Tsl; \r\n\r\n% Np      = 25; % 0.1\r\n% Ns      = 10; % 0.05;\r\n% Nx      = 8;\r\n% Ny      = 5;\r\n% Ts      = 0.05;\r\n% Tsl     = 0.5;\r\n\r\nK_phi       = 145330;\r\nD_phi       = 4500;\r\nTheta_1     = Calpha_f + Calpha_r;\r\nTheta_2     = lf*Calpha_f - lr*Calpha_r;\r\nTheta_3     = lf*lf*Calpha_f + lr*lr*Calpha_r;\r\n\r\nGai1 = hCG*Theta_2/(Ix*Vel)- hCG*M*Vel/Ix;\r\nAcn = [ Theta_1/(M*Vel)         Theta_2/(M*Vel)-Vel     0                0                       0   0;\r\n        Theta_2/(Iz*Vel)        Theta_3/(Iz*Vel)        0                0                       0   0;\r\n        hCG*Theta_1/(Ix*Vel)    Gai1                    -D_phi/Ix       (hCG*M*g-K_phi)/Ix     0   0;\r\n        0                       0                       1               0                       0   0;\r\n        1                       0                       0               0                       0   Vel;\r\n        0                       1                       0               0                       0   0 ];\r\n    \r\nB1cn = [-Calpha_f/M;\t-lf*Calpha_f/Iz;    -hCG*Calpha_f/Ix;    0;     0; \t0]; % \r\nB2cn = [-g,              0,                 -M*g*hCG/Ix,         0,     0, \t0;\r\n        0,               0,                  0,                  0,     0, \t-Vel]';\r\n\r\n% Acn = [ Theta_1/(M*Vel)         Theta_2/(M*Vel)-Vel     0                0                       0   0;\r\n%         Theta_2/(Iz*Vel)        Theta_3/(Iz*Vel)        0                0                       0   0;\r\n%        0                        0                       0               0                       0    0;\r\n%         0                       0                       0               0                       0   0;\r\n%         1                       0                       0               0                       0   Vel;\r\n%         0                       1                       0               0                       0   0 ];\r\n%     \r\n% B1cn = [-Calpha_f/M;\t-lf*Calpha_f/Iz;    0;          0;     0; \t0]; % \r\n% B2cn = [-g,              0,                 0,         0,     0, \t0;\r\n%         0,               0,                  0,        0,     0, \t-Vel]';\r\n    \r\n    As = eye(Nx) + Ts * Acn;\r\n    Bs1 = Ts * B1cn; \r\n    Bs2 = Ts * B2cn;\r\n    \r\n    AcnTsl = Tsl*Acn;\r\n    Al = eye(Nx) + AcnTsl + 0.5*AcnTsl*AcnTsl ; %  + (AcnTsl*AcnTsl*AcnTsl)/6;\r\n\r\n    Baug    = [B1cn, B2cn];\r\n    BaugTsl = Baug*Tsl;\r\n    Gail1   = BaugTsl + 0.5*(AcnTsl * BaugTsl); % + (AcnTsl * AcnTsl * BaugTsl)/6;\r\n    Gail2   = 0.5*BaugTsl;% + (AcnTsl * BaugTsl)/6;\r\n    \r\n    B1l     = Gail1 - Gail2; \r\n    B2l     = Gail2;\r\n    Bl11    = B1l(:,1);\r\n    Bl12    = B1l(:,2:3);\r\n    Bl21    = B2l(:,1);\r\n    Bl22    = B2l(:,2:3);\r\n    \r\n    StateSpaceModel.Acn     = Acn;\r\n    StateSpaceModel.B1cn    = B1cn; \r\n    StateSpaceModel.B2cn    = B2cn; \r\n    \r\n    StateSpaceModel.As      = As;\r\n    StateSpaceModel.Bs1     = Bs1; \r\n    StateSpaceModel.Bs2     = Bs2;\r\n    \r\n    StateSpaceModel.Al      = Al;\r\n    StateSpaceModel.Bl11    = Bl11; \r\n    StateSpaceModel.Bl12    = Bl12; \r\n    StateSpaceModel.Bl21    = Bl21; \r\n    StateSpaceModel.Bl22    = Bl22; \r\n    \r\nend % end of func_SpatialDynamicalModel\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_RigidbodyModel_FOH_Matrix_ROLL.m",
    "content": "%***************************************************************%\r\n% LinearTireModel_WithKs_FOH\r\n% Deem Vx as constant\r\n%***************************************************************%\r\nfunction [StateSpaceModel] = func_RigidbodyModel_FOH_Matrix_ROLL(VehiclePara, MPCParameters, Vel, Calpha_f, Calpha_r)\r\n    % generate State-space model\r\n   \r\nM       = VehiclePara.m ;\r\ng       = VehiclePara.g;%m/s^2\r\nL       = VehiclePara.L;  %a = 1.11;  \r\nlf      = VehiclePara.Lr;% 1.12;%1.05%  ת0.7m\r\nlr      = VehiclePara.Lr;% 1.48;%\r\nTr      = VehiclePara.Tr ; %m\r\nhCG     = VehiclePara.hCG;%m\r\nIx      = VehiclePara.Ix;\r\nIz      = VehiclePara.Iz;\r\n\r\nNp = MPCParameters.Np;\r\nNs = MPCParameters.Ns;\r\nNx = MPCParameters.Nx;\r\nNy = MPCParameters.Ny;\r\nTs = MPCParameters.Ts;\r\nTsl = MPCParameters.Tsl; \r\n\r\n% Np      = 25; % 0.1\r\n% Ns      = 10; % 0.05;\r\n% Nx      = 8;\r\n% Ny      = 5;\r\n% Ts      = 0.05;\r\n% Tsl     = 0.5;\r\n\r\n%% \r\nK_phi       = 145330;\r\nD_phi       = 4500;\r\nTheta_1     = Calpha_f + Calpha_r;\r\nTheta_2     = lf*Calpha_f - lr*Calpha_r;\r\nTheta_3     = lf*lf*Calpha_f + lr*lr*Calpha_r;\r\n\r\nIxz     = 0; %500\r\nMint = [  M         0       -M*hCG          0;\r\n          0         Iz      -Ixz            0;\r\n          -M*hCG    -Ixz    Ix+M*hCG*hCG    0\r\n          0         0       0               1];\r\n\r\nNint = [-Theta_1/Vel    M*Vel-Theta_2/Vel   0           M*g;  %0-->M*g\r\n        -Theta_2/Vel    -Theta_3/Vel        0           0;\r\n        0               -M*hCG*Vel          D_phi       K_phi-M*g*hCG;\r\n        0               0                   -1          0];\r\n\r\nF1int = [-Calpha_f; -lf*Calpha_f;  0;  0];\r\nF2int = [   0        0; \r\n            0        0;\r\n            K_phi    0; %-M*g*hCG\r\n            0        0];\r\n    \r\n% M_inv     = inv(M);\r\n% Ac_11     = M_inv*N;\r\nAc_11     = -Mint\\Nint; % 4*4\r\nB1cn_11   = Mint\\F1int; % 4*1\r\nB2cn_11   = Mint\\F2int; % 4*2\r\n\r\nAc_12     = [0 0; 0 0; 0 0; 0 0];\r\nAc_21     = [1  0    0    0;\r\n             0  1    0    0];\r\nAc_22     = [0   Vel; 0   0]; \r\n \r\nB1cn_12   = [ 0; \t0]; \r\nB2cn_12   = [ 0, \t0; \r\n              0, \t-Vel];\r\n    \r\nAcn     = [Ac_11 Ac_12; Ac_21   Ac_22];\r\nB1cn    = [B1cn_11; B1cn_12];\r\nB2cn    = [B2cn_11; B2cn_12];\r\n\r\n%% ZOH/FOH\r\n    As = eye(Nx) + Ts * Acn;\r\n    Bs1 = Ts * B1cn; \r\n    Bs2 = Ts * B2cn;\r\n    \r\n    AcnTsl = Tsl*Acn;\r\n    Al = eye(Nx) + AcnTsl + 0.5*AcnTsl*AcnTsl  + (AcnTsl*AcnTsl*AcnTsl)/6; %; % \r\n\r\n    Baug    = [B1cn, B2cn];\r\n    BaugTsl = Baug*Tsl;\r\n    Gail1   = BaugTsl + 0.5*(AcnTsl * BaugTsl)+ (AcnTsl * AcnTsl * BaugTsl)/6;%; % \r\n    Gail2   = 0.5*BaugTsl + (AcnTsl * BaugTsl)/6;%;%\r\n    \r\n    B1l     = Gail1 - Gail2; \r\n    B2l     = Gail2;\r\n    Bl11    = B1l(:,1);\r\n    Bl12    = B1l(:,2:3);\r\n    Bl21    = B2l(:,1);\r\n    Bl22    = B2l(:,2:3);\r\n    \r\n    StateSpaceModel.Acn     = Acn;\r\n    StateSpaceModel.B1cn    = B1cn; \r\n    StateSpaceModel.B2cn    = B2cn; \r\n    \r\n    StateSpaceModel.As      = As;\r\n    StateSpaceModel.Bs1     = Bs1; \r\n    StateSpaceModel.Bs2     = Bs2;\r\n    \r\n    StateSpaceModel.Al      = Al;\r\n    StateSpaceModel.Bl11    = Bl11; \r\n    StateSpaceModel.Bl12    = Bl12; \r\n    StateSpaceModel.Bl21    = Bl21; \r\n    StateSpaceModel.Bl22    = Bl22; \r\n    \r\nend % end of func_SpatialDynamicalModel\r\n\r\n"
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_SafedrivingEnvelope_SL.m",
    "content": "function [Envelope] = func_SafedrivingEnvelope_SL(VehiclePara, MPCParameters, Constraints, StateSpaceModel, Vel, CarHat, EY_MAX, EY_Min)\r\n    %  Generating safe driving envelope \r\n    h       = VehiclePara.hCG;\r\n    Tr      = VehiclePara.Tr;\r\n    lf      = VehiclePara.Lf;\r\n    lr      = VehiclePara.Lr;\r\n    l       = VehiclePara.L;\r\n    M       = VehiclePara.m;       \r\n    g       = VehiclePara.g;\r\n    mu      = VehiclePara.mu;\r\n    Iz      = VehiclePara.Iz;   %IΪZתв  \r\n    Ix      = VehiclePara.Ix;   %IΪZתв  \r\n    Np      = MPCParameters.Np;\r\n    Ns      = MPCParameters.Ns;\r\n    Alphar_lim = Constraints.arlim;\r\n    \r\n    %-----------environmental envelope-------------%\r\n    Envelope.Henv  = [0   0   0   0   1     0;\r\n                      0   0   0   0   -1    0]; \r\n                  \r\n    Envelope.Genv  = cell(Np,1); \r\n    Dist_temp      = 0.8; % dw/2 + dbuffer; \r\n    for i = 1:1:Np\r\n       Envelope.Genv{i,1} = [EY_MAX(i) - Dist_temp;\r\n                             -EY_Min(i) - Dist_temp]; \r\n    end  \r\n\r\n    %-----------stable handling envelope-------------%\r\n%     for j = 1:1:Np\r\n        Envelope.Hsh  = [1/Vel   -lr/Vel    0   0    0   0;\r\n                         0         1        0   0    0   0];   \r\n        Envelope.Psh  = [0  0;  g/Vel   0];\r\n        \r\n        r_ssmax = -CarHat*Alphar_lim*(1+lr/lf)/(M*Vel);                  \r\n\r\n        Envelope.Gsh  = [Alphar_lim    r_ssmax]';                  \r\n%     end\r\n\r\n   %-----------zero moment point -------------% \r\n   Acn = StateSpaceModel.Acn;  % 8*8\r\n   B1cn = StateSpaceModel.B1cn; %8*1\r\n   B2cn = StateSpaceModel.B2cn;%8*2\r\n   \r\n%    N1 = [h/g    0            -Ix/(M*g)   0   0   0];\r\n%    N2 = [0      h*Vel/g      0           h   0   0]; %\r\n%    N3 = [h  0];\r\n\r\n   N1 = [2*h/(g*Tr)     0                   -2*(M*h*h+Ix)/(M*g*Tr)      0         0   0];\r\n   N2 = [0              2*h*Vel/(g*Tr)     0                            2*h/Tr    0   0]; %\r\n%    N3 = [2*h/Tr         0];\r\n\r\n   \r\n   H_yzmp   = N1*Acn + N2;%1*8\r\n   P_yzmp1  = N1*B1cn; %1*1\r\n   P_yzmp2  = N1*B2cn; % + N3;%1*2\r\n   \r\n   Envelope.H_yzmp  = H_yzmp;\r\n   Envelope.P_yzmp1 = P_yzmp1;\r\n   Envelope.P_yzmp2 = P_yzmp2;\r\n    \r\nend  % end of func_SafedrivingEnvelope "
  },
  {
    "path": "Chapter-8/chapter8_rollover_prevention_terrain/func_bezierInterp.m",
    "content": "% Bezier interpolation for given four control points.\r\n% Each control point can be in N-Dimensional vector space.\r\n% Input:\r\n% P0,P1,P2,P3: four control points of bezier curve,\r\n%              control points can have any number of coordinates\r\n% t(optional arg):vector that holds paramter t values b/w 0 and 1 at which \r\n%                 bezier curve is evaluated (default 101 values between 0\r\n%                 and 1.)\r\n\r\n% Output:\r\n% Q evaluated values of bezier curves. Number of columns of Q are equal to\r\n% number of coordinates in control point. For example for 2-D, Q has two\r\n% columns. Column 1 for x value and column 2 for y values. Similarly for\r\n% 3-D, Q will have three columns\r\n\r\nfunction Q=func_bezierInterp(P0,P1,P2,P3,varargin)\r\n\r\n%%% Default Values %%%\r\nt=linspace(0,1,101); % uniform parameterization \r\ndefaultValues = {t};\r\n%%% Assign Valus %%%\r\nnonemptyIdx = ~cellfun('isempty',varargin);\r\ndefaultValues(nonemptyIdx) = varargin(nonemptyIdx);\r\n[t] = deal(defaultValues{:});\r\n% % --------------------------------\r\nM=[-1  3 -3 1;\r\n    3 -6  3 0;\r\n   -3  3  0 0;\r\n    1  0  0 0];\r\nfor k=1:length(t)\r\n    Q(k,:)=[t(k)^3 t(k)^2 t(k) 1]*M*[P0;P1;P2;P3];\r\nend\r\n% % Ref: Mathematical Elements of Computer Graphics by\r\n% %      David F. Rogers and J. Alan Adams (pg. 296)\r\n% % --------------------------------\r\n% % OR\r\n% % Equation of Bezier Curve, utilizes Horner's rule for efficient computation.\r\n% % Q(t)=(-P0 + 3*(P1-P2) + P3)*t^3 + 3*(P0-2*P1+P2)*t^2 + 3*(P1-P0)*t + Px0\r\n% c3 = -P0 + 3*(P1-P2) + P3;\r\n% c2 = 3*(P0 - (2*P1)+P2); \r\n% c1 = 3*(P1 - P0);\r\n% c0 = P0;\r\n% for k=1:length(t)\r\n%     Q(k,:)=((c3*t(k)+c2)*t(k)+c1)*t(k) + c0;    \r\n% end\r\n\r\n% % % --------------------------------\r\n% % % Author: Dr. Murtaza Khan\r\n% % % Email : drkhanmurtaza@gmail.com\r\n% % % --------------------------------\r\n"
  },
  {
    "path": "Publications_list",
    "content": "\n# My publications\n\nThis folder holds my publications. \nFor more details, please refer to my personal homepage [https://leoking99-bit.github.io/](https://leoking99-bit.github.io/)\n\n## PhD Thessis of Kai Liu\n    * 刘凯. 基于模型预测的无人驾驶车辆操纵稳定性控制研究[D]. 北京：北京理工大学, 2019. \n\n## Pub-List of Kai Liu\n    * [1] 刘凯, 龚建伟, 陈舒平, 张玉, 陈慧岩. 高速无人驾驶车辆最优运动规划与控制的动力学建模分析 [J]. 机械工程学报, 2018, 54(14), 141-151.\n    * [2] 刘凯, 陈慧岩, 龚建伟, 陈舒平, 张玉. 高速无人驾驶车辆的操控稳定性研究 [J]. 汽车工程, 2018. \n    * [3] Kai Liu, Jianwei Gong, Shuping Chen, Yu Zhang and Huiyan Chen. Model Predictive Stabilization Control of High-speed Autonomous Ground Vehicles Considering the Effect of Road Topography [J]. Applied Sciences, 2018, 8(5), 822-838.\n    * [4] 刘凯, 陈慧岩, 龚建伟, 陈舒平. 越野环境下智能车辆的动力学建模与横向控制 [J]. 北京理工大学学报, 2018.\n    * [5] Kai Liu, Jianwei Gong, Arda Kurt, Huiyan Chen and Umit Ozguner. Dynamic Modeling and Control of High-speed Automated Vehicles for Lane Change Maneuver [J]. IEEE Transactions on Intelligent Vehicles, 2018, 3(3), 329-339.\n    * [6] Kai Liu, Jianwei Gong, Arda Kurt, Huiyan Chen and Umit Ozguner. A Model Predictive-based Approach for Longitudinal Control in Autonomous Driving with Lateral Interruptions [C]. IEEE Intelligent Vehicles Symposium, 2017, 359-364.\n    * [7] Kai Liu, Jianwei Gong, Chao Lu, Yu Zhang and Huiyan Chen. A Pseudospectral Strategy for Lane Change Maneuver of Automated Vehicles on the Highway [C]. 18th COTA International Conference of Transportation Professionals, 2018, 134-145.\n    * [8] 徐威, 刘凯, 孙银建, 姜岩, 龚建伟. 开放式模块化的无人平台体系结构 [J]. 计算机应用, 2014, 301-305E.\n    * [9] 龚建伟, 徐威, 姜岩, 刘凯, 等. Multi-constrained model predictive control for autonomous ground vehicle trajectory tracking [J]. Journal of Beijing Institute of Technology, 2015, 24(4), 441-448.\n    * [10] 胡家铭, 胡宇辉, 陈慧岩, 刘凯. 基于模型预测控制的无人驾驶履带车辆轨迹跟踪[J]. 兵工学报, 2018.\n    * [11] Yu Zhang, Huiyan Chen, Steven L. Waslander, Jianwei Gong, Guangming Xiong, Tian Yang, and Kai Liu. Hybrid Trajectory Planning for Autonomous Driving in Highly Constrained Environments [J]. IEEE Access, 2018, 6, 32800-32819.\n    * [12] Yu Zhang, Huiyan Chen, Steven L. Waslander, Sheng Zhang, Tian Yang, Guangming Xiong, and Kai Liu. Toward a More Complete, Flexible, and Safer Speed Planning for Autonomous Driving via Convex Optimization [J]. Sensors, 2018, 18(7), 2185-2213.\n    * [13] Jiaming Hu, Yuhui Hu, Kai Liu, Wei Wang, Huiyan Chen. Off-road Terrain Path Planning for Differential Steering Vehicles Based on Artificial Potential Field Gradient [C]. ITSC, 2019.\n    * [14] 王威, 陈慧岩, 马建昊, 刘凯, 龚建伟. 基于Frenet坐标系和控制延时补偿的智能车辆路径跟踪[J].兵工学报,2019,40(11):2336-2351.\n"
  },
  {
    "path": "README.md",
    "content": "# 无人驾驶车辆模型预测控制(第2版)\n\n无人驾驶车辆模型预测控制(第2版)随书仿真程序及扩展学习资料.\n\nThis repo holds the Simulink/CarSim codes for examples of Self-driving Vehicles and Model Predictive Contorl (2ed edition).\n\n\n## Contents\n\n1. Chapter-2: Vehicle model validation, including 4 examples\n    * tire model validation\n    * kinematic model validation\n    * dynamic model validation\n\n2. Chapter-3: MPC for longitudinal control, including 4 examples\n    * a simple example using MPC toolbox for speed tracking demo\n    * MPC for speed tracking control with du as input\n    * Extended: MPC for speed tracking control with u as input\n    * Extended: MPC for Adaptive Cruise Control, involve multi-vehicle joint simulation\n\n3. Chapter-4: MPC use kinematic model for path tracking, including 4 examples\n    * Matlab code for given path tracking\n    * Simulink/CarSim for given path tracking\n    * Adaptive path fitting with 3rd-order Bezier curve\n    * MPC for general path tracking\n\n4. Chapter-5: MPC use dynamic model for Active Frontwheel Steering (AFS), including 2 examples\n    * Tire Cornering Stiffness Estimation use RLS method\n    * MPC for AFS \n\n5. Chapter-6: MPC for path tracking with local planning, including 1 examples\n    * MPC for obstacle avoidance in local planning, then MPC for tracking\n\n6. Chapter-7: MPC for handlig stability of high-speed self-driving Vehicles, including 3 examples\n    * Different qp-solver compare test\n    * MPC for high-speed self-driving vehicles, ignore handling stability\n    * MPC for high-speed self-driving vehicles consider handling stability\n\n7. Chapter-8:MPC for rollover prevention consider road terrain information, including 2 examples\n    * Zero-Moment-Point based Rollover criteria validation\n    * MPC for path tracking considering road terrain and rollover prevention\n\n## Relatives links\nIVRC: [Link for Inteligent Vehicle Research Center (IVRC) of BIT](https://github.com/bit-ivrc)\n\nqpOASES: [Link for qpOASES](https://github.com/leoking99-BIT/qpOASES)\n\nOSQP: [Link for OSQP](https://github.com/leoking99-BIT/osqp)\n\n## Bug reports and support\nPlease report any issues via the [Github issue tracker](https://github.com/leoking99-BIT/Self-driving-Vehicles-and-Model-Predictive-Control/issues). All types of issues are welcome, including bug reports, documentation typos, feature requests and so on.\n\n## Contact Me\nPersonal homepage: [https://leoking99-bit.github.io/](https://leoking99-bit.github.io/)\n\nEmail: leoking1025@gmail.com\n\nIf you have any questions or suggestions, please don't hesitate to contact me. Any advices and comments would be highly appreciated. \n"
  }
]