├── .gitignore ├── LICENSE ├── MDLparsetool.py ├── README └── testExample ├── fourBar.mdl └── sldemo_suspn.mdl /.gitignore: -------------------------------------------------------------------------------- 1 | /venv 2 | /.vscode 3 | /*.html 4 | /*.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Steven Yue 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MDLparsetool.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from pyparsing import * 3 | import re 4 | import string 5 | 6 | """ 7 | This tool is for manipulating Simulink model file under Python 8 | 9 | Methods: 10 | get_param(mdlSys, attriName[, ex = 1]) 11 | set_param(mdlSys, attriName, attriValue) 12 | find_block(mdlSys, obj, attriName, keyVal) 13 | get_connection(mdlSys, jointList) 14 | 15 | Take a look at main() part to learn how to use them 16 | 17 | Author: Steven Yue 18 | E-mail: steventenie@gmail.com 19 | 20 | Credits: 21 | Code for parsing mdl file into nest list was writtern by Kjell Magne Fauske, 22 | and most of his code is based on the json parser example distributed with 23 | pyparsing. The code in jsonParser.py was written by Paul McGuire 24 | 25 | """ 26 | 27 | # A high level grammar of the Simulink mdl file format 28 | SIMULINK_BNF = """ 29 | object { 30 | members 31 | } 32 | members 33 | variablename value 34 | object { 35 | members 36 | } 37 | variablename 38 | 39 | array 40 | [ elements ] 41 | matrix 42 | [elements ; elements] 43 | elements 44 | value 45 | elements , value 46 | value 47 | string 48 | doublequotedstring 49 | float 50 | integer 51 | object 52 | array 53 | matrix 54 | """ 55 | 56 | 57 | # parse actions 58 | def convertNumbers(s,l,toks): 59 | """Convert tokens to int or float""" 60 | # Taken from jsonParser.py 61 | n = toks[0] 62 | try: 63 | return int(n) 64 | except ValueError as ve: 65 | return float(n) 66 | 67 | def joinStrings(s,l,toks): 68 | """Join string split over multiple lines""" 69 | return ["".join(toks)] 70 | 71 | 72 | def mdlParser(mdlFilePath): 73 | mdldata = open(mdlFilePath,'r').read() 74 | # Define grammar 75 | 76 | # Parse double quoted strings. Ideally we should have used the simple statement: 77 | # dblString = dblQuotedString.setParseAction( removeQuotes ) 78 | # Unfortunately dblQuotedString does not handle special chars like \n \t, 79 | # so we have to use a custom regex instead. 80 | # See http://pyparsing.wikispaces.com/message/view/home/3778969 for details. 81 | dblString = Regex(r'\"(?:\\\"|\\\\|[^"])*\"', re.MULTILINE) 82 | dblString.setParseAction( removeQuotes ) 83 | mdlNumber = Combine( Optional('-') + ( '0' | Word('123456789',nums) ) + 84 | Optional( '.' + Word(nums) ) + 85 | Optional( Word('eE',exact=1) + Word(nums+'+-',nums) ) ) 86 | mdlObject = Forward() 87 | mdlName = Word('$'+'.'+'_'+alphas+nums) 88 | mdlValue = Forward() 89 | # Strings can be split over multiple lines 90 | mdlString = dblString + ZeroOrMore(Suppress(LineEnd()) + dblString) 91 | mdlString.set_parse_action(lambda lst: "".join(lst)) 92 | mdlElements = delimitedList( mdlValue ) 93 | mdlArray = Group(Suppress('[') + Optional(mdlElements) + Suppress(']') ) 94 | mdlMatrix =Group(Suppress('[') + (delimitedList(Group(mdlElements),';')) \ 95 | + Suppress(']') ) 96 | mdlValue << ( mdlNumber | mdlName| mdlString | mdlArray | mdlMatrix ) 97 | memberDef = Group( mdlName + mdlValue ) | Group(mdlObject) 98 | mdlMembers = OneOrMore( memberDef) 99 | mdlObject << ( mdlName+Suppress('{') + Optional(mdlMembers) + Suppress('}') ) 100 | mdlNumber.setParseAction( convertNumbers ) 101 | mdlString.setParseAction(joinStrings) 102 | # Some mdl files from Mathworks start with a comment. Ignore all 103 | # lines that start with a # 104 | singleLineComment = Group("#" + restOfLine) 105 | mdlObject.ignore(singleLineComment) 106 | mdlparser = mdlObject 107 | result = mdlparser.parseString(mdldata) 108 | return result 109 | 110 | def get_param(mdlSys, attriName, ex = 1): 111 | """ 112 | Find the value of a special attribute in the mdl system sequence 113 | If ex = 1 : list [Block Name, value] 114 | If ex = 0 : list only the value of the attribute 115 | """ 116 | result = [] 117 | for syslist in mdlSys: 118 | if syslist[0]=='System': 119 | for blocklist in syslist: 120 | if blocklist[0]=='Block': 121 | for item in blocklist: 122 | if item[0]== attriName: 123 | if ex == 1: 124 | ans = [blocklist[2][1], item[1]] 125 | elif ex == 0: 126 | ans = item[1] 127 | result.append(ans) 128 | 129 | if result == []: 130 | for blocklist in mdlSys: 131 | if blocklist[0]=='Block': 132 | for item in blocklist: 133 | if item[0]== attriName: 134 | if ex == 1: 135 | ans = [blocklist[2][1], item[1]] 136 | elif ex == 0: 137 | ans = item[1] 138 | result.append(ans) 139 | if result == []: 140 | for blocklist in mdlSys: 141 | for item in blocklist: 142 | if item[0]== attriName: 143 | if ex == 1: 144 | ans = [blocklist[2][1], item[1]] 145 | elif ex == 0: 146 | ans = item[1] 147 | result.append(ans) 148 | if result == []: 149 | for item in mdlSys: 150 | if item[0]== attriName: 151 | if ex == 1: 152 | ans = [blocklist[2][1], item[1]] 153 | elif ex == 0: 154 | ans = item[1] 155 | result.append(ans) 156 | return result 157 | 158 | 159 | def set_param(mdlSys, attriName, attriValue): 160 | """ 161 | Set the value of a special attribute in the mdl system sequence 162 | If ex = 1 : list [Block Name, value] 163 | If ex = 0 : list only the value of the attribute 164 | Return 1 if find and set the parameter successfully 165 | 0 if failed 166 | """ 167 | result = 0 168 | for syslist in mdlSys: 169 | if syslist[0]=='System': 170 | for blocklist in syslist: 171 | if blocklist[0]=='Block': 172 | for item in blocklist: 173 | if item[0]== attriName: 174 | item[1] = attriValue 175 | result = 1 176 | if result == 0: 177 | for blocklist in mdlSys: 178 | if blocklist[0]=='Block': 179 | for item in blocklist: 180 | if item[0]== attriName: 181 | item[1] = attriValue 182 | result = 1 183 | if result == 0: 184 | for blocklist in mdlSys: 185 | for item in blocklist: 186 | if item[0]== attriName: 187 | item[1] = attriValue 188 | result = 1 189 | if result == 0: 190 | for item in mdlSys: 191 | if item[0]== attriName: 192 | item[1] = attriValue 193 | result = 1 194 | return result 195 | 196 | 197 | def find_block(mdlSys, obj, attriName, keyVal): 198 | """ 199 | Find all the Blocks that has an keyVal in an Attribute 200 | """ 201 | result = [] 202 | for syslist in mdlSys: 203 | if syslist[0]=='System': 204 | for blocklist in syslist: 205 | if blocklist[0]== obj: 206 | for item in blocklist: 207 | if item[0]== attriName and item[1]==keyVal: 208 | ans = blocklist 209 | 210 | result.append(ans) 211 | return result 212 | 213 | 214 | def get_connection(mdlSys, jointList): 215 | lineList = find_block(mdlSys,'Line','LineType','Connection') 216 | jointConnList = [] 217 | for jointName in jointList: 218 | jointConn = [jointName] 219 | jointBlockList = find_block(mdlSys,'Block', 'Name', jointName) 220 | jointFramesList = get_param(jointBlockList, 'PrimitiveProps', ex = 0) 221 | jointFrames = jointFramesList[0].split('$') 222 | joint_Axis = jointFrames[2] 223 | joint_TypeName=get_param(jointBlockList,'SourceType',0)[0] 224 | jointConn.append(joint_TypeName) 225 | jointConn.append(joint_Axis) 226 | joint_relCS = jointFrames[1] 227 | jointConn.append(joint_relCS) 228 | 229 | for blocklist in lineList: 230 | for item in blocklist: 231 | if item[0] == 'DstBlock' and item[1] == jointName: 232 | baseName = get_param(blocklist, 'SrcBlock', ex = 0) 233 | basePortList = get_param(blocklist, 'SrcPort', ex = 0) 234 | basePortVal = basePortList[0] 235 | basePort = basePortVal.split('Conn') 236 | baseBlock = find_block(mdlSys,'Block', 'Name', baseName[0]) 237 | 238 | bconnCSValList = get_param(baseBlock, basePort[0]+'ConnTagsString', ex = 0) 239 | if bconnCSValList == []: 240 | bconnCSValList = ['None'] 241 | 242 | bconnCSVal = bconnCSValList[0] 243 | numCS = eval(basePort[-1]) 244 | baseConn = bconnCSVal.split('|')[numCS - 1] #Find the digital number of CS which is the base to connect to the joint 245 | 246 | jointConn.append([baseName[0], baseConn]) 247 | 248 | if item[0] == 'SrcBlock' and item[1] == jointName: 249 | followerName = get_param(blocklist, 'DstBlock', ex = 0) 250 | 251 | followerPortList = get_param(blocklist, 'DstPort', ex = 0) #Note: get_param() returns a list 252 | followerPortVal = followerPortList[0] 253 | followerPort = followerPortVal.split('Conn') 254 | followerBlock = find_block(mdlSys,'Block', 'Name', followerName[0]) 255 | 256 | fconnCSValList = get_param(followerBlock, followerPort[0]+'ConnTagsString', ex = 0) 257 | if fconnCSValList == []: 258 | fconnCSValList = ['None'] 259 | 260 | fconnCSVal = fconnCSValList[0] 261 | numCS = eval(followerPort[-1]) 262 | followerConn = fconnCSVal.split('|')[numCS - 1] #Find the digital number of CS which is the base to connect to the joint 263 | jointConn.append([followerName[0], followerConn]) 264 | 265 | jointConnList.append(jointConn) 266 | 267 | return jointConnList 268 | 269 | # examples on how to use thoes functions 270 | def main(): 271 | import os 272 | from pprint import pprint 273 | filePath = os.path.join(os.getcwd(),'testExample','fourBar.mdl') 274 | #testdata = open('AIRCRAFT_ENGINE.mdl','r').read() 275 | result = mdlParser(filePath) 276 | mdldata = result.asList() 277 | #mdldata = result 278 | 279 | JointList = find_block(mdldata,'Block','DialogClass','JointBlock') 280 | JointNameList = get_param(JointList,'Name',0) 281 | ConnList = get_connection(mdldata, JointNameList) 282 | print('ConnList') 283 | pprint(ConnList) 284 | print('ConnList[1]') 285 | pprint(ConnList[1]) 286 | print('ConnList[1][1]') 287 | pprint(ConnList[1][1]) 288 | fListT = open('fourBarTemplete.txt','wb') 289 | 290 | 291 | # test stuff 292 | if __name__ == '__main__': 293 | main() 294 | 295 | 296 | 297 | #for index, item in enumerate(seq): 298 | # print 1 299 | # if value in item: 300 | # return index, item 301 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | ##-- Simulink Mode Parsing Tools --## 2 | 3 | This tool package intends to extend my parsing tool for SimMechancis which has a very similar structure with Simulink. 4 | 5 | * the tools contian MDLparsetool.py for parsing .mdl file, which is created directly under Matlab's Simulink environment. 6 | * the tools provide functions like get_param(), set_param(), add_block(), add_line() etc. 7 | 8 | The goal of this project is to implement the same system manipulation functions as provided in Matlab environement. 9 | So that one can create and/or modify Simulink model by using python. 10 | 11 | ##-- Requirements --## 12 | To run this tool, you'll need: 13 | * Python, version 2.4 or higher 14 | * for mdl file parser, you need to install pyparsing module 15 | 16 | ##-- Credits --## 17 | Project author: Steven Yue 18 | The function for parsing mdl file into nest list was writtern by Kjell Magne Fauske. Thanks 19 | -------------------------------------------------------------------------------- /testExample/fourBar.mdl: -------------------------------------------------------------------------------- 1 | Model { 2 | Name "fourBar" 3 | Version 7.5 4 | MdlSubVersion 0 5 | GraphicalInterface { 6 | NumRootInports 0 7 | NumRootOutports 0 8 | ParameterArgumentNames "" 9 | ComputedModelVersion "1.2" 10 | NumModelReferences 0 11 | NumTestPointedSignals 0 12 | } 13 | SavedCharacterEncoding "windows-1252" 14 | SaveDefaultBlockParams on 15 | ScopeRefreshTime 0.035000 16 | OverrideScopeRefreshTime on 17 | DisableAllScopes off 18 | DataTypeOverride "UseLocalSettings" 19 | MinMaxOverflowLogging "UseLocalSettings" 20 | MinMaxOverflowArchiveMode "Overwrite" 21 | MaxMDLFileLineLength 120 22 | UserBdParams "PhysicalModelingChecksum;PhysicalModelingParameterChecksum;PhysicalModelingProducts" 23 | PhysicalModelingChecksum "4261005961" 24 | PhysicalModelingParameterChecksum "563620857" 25 | PhysicalModelingProducts "SimMechanics" 26 | Created "Tue Nov 10 14:14:56 2009" 27 | Creator "congyue1" 28 | UpdateHistory "UpdateHistoryNever" 29 | ModifiedByFormat "%" 30 | LastModifiedBy "Cong Yue" 31 | ModifiedDateFormat "%" 32 | LastModifiedDate "Sat Apr 16 18:42:11 2011" 33 | RTWModifiedTimeStamp 224879263 34 | ModelVersionFormat "1.%" 35 | ConfigurationManager "None" 36 | SampleTimeColors off 37 | SampleTimeAnnotations off 38 | LibraryLinkDisplay "none" 39 | WideLines off 40 | ShowLineDimensions off 41 | ShowPortDataTypes off 42 | ShowLoopsOnError on 43 | IgnoreBidirectionalLines off 44 | ShowStorageClass off 45 | ShowTestPointIcons on 46 | ShowSignalResolutionIcons on 47 | ShowViewerIcons on 48 | SortedOrder off 49 | ExecutionContextIcon off 50 | ShowLinearizationAnnotations on 51 | BlockNameDataTip off 52 | BlockParametersDataTip off 53 | BlockDescriptionStringDataTip off 54 | ToolBar on 55 | StatusBar on 56 | BrowserShowLibraryLinks off 57 | BrowserLookUnderMasks off 58 | SimulationMode "normal" 59 | LinearizationMsg "none" 60 | Profile off 61 | ParamWorkspaceSource "MATLABWorkspace" 62 | AccelSystemTargetFile "accel.tlc" 63 | AccelTemplateMakefile "accel_default_tmf" 64 | AccelMakeCommand "make_rtw" 65 | TryForcingSFcnDF off 66 | RecordCoverage off 67 | CovPath "/" 68 | CovSaveName "covdata" 69 | CovMetricSettings "dw" 70 | CovNameIncrementing off 71 | CovHtmlReporting on 72 | CovForceBlockReductionOff on 73 | covSaveCumulativeToWorkspaceVar on 74 | CovSaveSingleToWorkspaceVar on 75 | CovCumulativeVarName "covCumulativeData" 76 | CovCumulativeReport off 77 | CovReportOnPause on 78 | CovModelRefEnable "Off" 79 | CovExternalEMLEnable off 80 | ExtModeBatchMode off 81 | ExtModeEnableFloating on 82 | ExtModeTrigType "manual" 83 | ExtModeTrigMode "normal" 84 | ExtModeTrigPort "1" 85 | ExtModeTrigElement "any" 86 | ExtModeTrigDuration 1000 87 | ExtModeTrigDurationFloating "auto" 88 | ExtModeTrigHoldOff 0 89 | ExtModeTrigDelay 0 90 | ExtModeTrigDirection "rising" 91 | ExtModeTrigLevel 0 92 | ExtModeArchiveMode "off" 93 | ExtModeAutoIncOneShot off 94 | ExtModeIncDirWhenArm off 95 | ExtModeAddSuffixToVar off 96 | ExtModeWriteAllDataToWs off 97 | ExtModeArmWhenConnect on 98 | ExtModeSkipDownloadWhenConnect off 99 | ExtModeLogAll on 100 | ExtModeAutoUpdateStatusClock on 101 | BufferReuse on 102 | ShowModelReferenceBlockVersion off 103 | ShowModelReferenceBlockIO off 104 | Array { 105 | Type "Handle" 106 | Dimension 1 107 | Simulink.ConfigSet { 108 | $ObjectID 1 109 | Version "1.10.0" 110 | Array { 111 | Type "Handle" 112 | Dimension 9 113 | Simulink.SolverCC { 114 | $ObjectID 2 115 | Version "1.10.0" 116 | StartTime "0.0" 117 | StopTime "10.0" 118 | AbsTol "auto" 119 | FixedStep "auto" 120 | InitialStep "auto" 121 | MaxNumMinSteps "-1" 122 | MaxOrder 5 123 | ZcThreshold "auto" 124 | ConsecutiveZCsStepRelTol "10*128*eps" 125 | MaxConsecutiveZCs "1000" 126 | ExtrapolationOrder 4 127 | NumberNewtonIterations 1 128 | MaxStep "auto" 129 | MinStep "auto" 130 | MaxConsecutiveMinStep "1" 131 | RelTol "1e-3" 132 | SolverMode "Auto" 133 | Solver "ode45" 134 | SolverName "ode45" 135 | SolverJacobianMethodControl "auto" 136 | ShapePreserveControl "DisableAll" 137 | ZeroCrossControl "UseLocalSettings" 138 | ZeroCrossAlgorithm "Nonadaptive" 139 | AlgebraicLoopSolver "TrustRegion" 140 | SolverResetMethod "Fast" 141 | PositivePriorityOrder off 142 | AutoInsertRateTranBlk off 143 | SampleTimeConstraint "Unconstrained" 144 | InsertRTBMode "Whenever possible" 145 | } 146 | Simulink.DataIOCC { 147 | $ObjectID 3 148 | Version "1.10.0" 149 | Decimation "1" 150 | ExternalInput "[t, u]" 151 | FinalStateName "xFinal" 152 | InitialState "xInitial" 153 | LimitDataPoints on 154 | MaxDataPoints "1000" 155 | LoadExternalInput off 156 | LoadInitialState off 157 | SaveFinalState off 158 | SaveCompleteFinalSimState off 159 | SaveFormat "Array" 160 | SaveOutput on 161 | SaveState off 162 | SignalLogging on 163 | DSMLogging on 164 | InspectSignalLogs off 165 | SaveTime on 166 | ReturnWorkspaceOutputs off 167 | StateSaveName "xout" 168 | TimeSaveName "tout" 169 | OutputSaveName "yout" 170 | SignalLoggingName "logsout" 171 | DSMLoggingName "dsmout" 172 | OutputOption "RefineOutputTimes" 173 | OutputTimes "[]" 174 | ReturnWorkspaceOutputsName "out" 175 | Refine "1" 176 | } 177 | Simulink.OptimizationCC { 178 | $ObjectID 4 179 | Version "1.10.0" 180 | Array { 181 | Type "Cell" 182 | Dimension 6 183 | Cell "PassReuseOutputArgsAs" 184 | Cell "PassReuseOutputArgsThreshold" 185 | Cell "ZeroExternalMemoryAtStartup" 186 | Cell "ZeroInternalMemoryAtStartup" 187 | Cell "OptimizeModelRefInitCode" 188 | Cell "NoFixptDivByZeroProtection" 189 | PropName "DisabledProps" 190 | } 191 | BlockReduction on 192 | BooleanDataType on 193 | ConditionallyExecuteInputs on 194 | InlineParams off 195 | UseIntDivNetSlope off 196 | InlineInvariantSignals off 197 | OptimizeBlockIOStorage on 198 | BufferReuse on 199 | EnhancedBackFolding off 200 | StrengthReduction off 201 | EnforceIntegerDowncast on 202 | ExpressionFolding on 203 | BooleansAsBitfields off 204 | BitfieldContainerType "uint_T" 205 | EnableMemcpy on 206 | MemcpyThreshold 64 207 | PassReuseOutputArgsAs "Structure reference" 208 | ExpressionDepthLimit 2147483647 209 | FoldNonRolledExpr on 210 | LocalBlockOutputs on 211 | RollThreshold 5 212 | SystemCodeInlineAuto off 213 | StateBitsets off 214 | DataBitsets off 215 | UseTempVars off 216 | ZeroExternalMemoryAtStartup on 217 | ZeroInternalMemoryAtStartup on 218 | InitFltsAndDblsToZero off 219 | NoFixptDivByZeroProtection off 220 | EfficientFloat2IntCast off 221 | EfficientMapNaN2IntZero on 222 | OptimizeModelRefInitCode off 223 | LifeSpan "inf" 224 | MaxStackSize "Inherit from target" 225 | BufferReusableBoundary on 226 | SimCompilerOptimization "Off" 227 | AccelVerboseBuild off 228 | } 229 | Simulink.DebuggingCC { 230 | $ObjectID 5 231 | Version "1.10.0" 232 | RTPrefix "error" 233 | ConsistencyChecking "none" 234 | ArrayBoundsChecking "none" 235 | SignalInfNanChecking "none" 236 | SignalRangeChecking "none" 237 | ReadBeforeWriteMsg "UseLocalSettings" 238 | WriteAfterWriteMsg "UseLocalSettings" 239 | WriteAfterReadMsg "UseLocalSettings" 240 | AlgebraicLoopMsg "warning" 241 | ArtificialAlgebraicLoopMsg "warning" 242 | SaveWithDisabledLinksMsg "warning" 243 | SaveWithParameterizedLinksMsg "warning" 244 | CheckSSInitialOutputMsg on 245 | UnderspecifiedInitializationDetection "Classic" 246 | MergeDetectMultiDrivingBlocksExec "none" 247 | CheckExecutionContextPreStartOutputMsg off 248 | CheckExecutionContextRuntimeOutputMsg off 249 | SignalResolutionControl "UseLocalSettings" 250 | BlockPriorityViolationMsg "warning" 251 | MinStepSizeMsg "warning" 252 | TimeAdjustmentMsg "none" 253 | MaxConsecutiveZCsMsg "error" 254 | SolverPrmCheckMsg "warning" 255 | InheritedTsInSrcMsg "warning" 256 | DiscreteInheritContinuousMsg "warning" 257 | MultiTaskDSMMsg "error" 258 | MultiTaskCondExecSysMsg "error" 259 | MultiTaskRateTransMsg "error" 260 | SingleTaskRateTransMsg "none" 261 | TasksWithSamePriorityMsg "warning" 262 | SigSpecEnsureSampleTimeMsg "warning" 263 | CheckMatrixSingularityMsg "none" 264 | IntegerOverflowMsg "warning" 265 | Int32ToFloatConvMsg "warning" 266 | ParameterDowncastMsg "error" 267 | ParameterOverflowMsg "error" 268 | ParameterUnderflowMsg "none" 269 | ParameterPrecisionLossMsg "warning" 270 | ParameterTunabilityLossMsg "warning" 271 | FixptConstUnderflowMsg "none" 272 | FixptConstOverflowMsg "none" 273 | FixptConstPrecisionLossMsg "none" 274 | UnderSpecifiedDataTypeMsg "none" 275 | UnnecessaryDatatypeConvMsg "none" 276 | VectorMatrixConversionMsg "none" 277 | InvalidFcnCallConnMsg "error" 278 | FcnCallInpInsideContextMsg "Use local settings" 279 | SignalLabelMismatchMsg "none" 280 | UnconnectedInputMsg "warning" 281 | UnconnectedOutputMsg "warning" 282 | UnconnectedLineMsg "warning" 283 | SFcnCompatibilityMsg "none" 284 | UniqueDataStoreMsg "none" 285 | BusObjectLabelMismatch "warning" 286 | RootOutportRequireBusObject "warning" 287 | AssertControl "UseLocalSettings" 288 | EnableOverflowDetection off 289 | ModelReferenceIOMsg "none" 290 | ModelReferenceVersionMismatchMessage "none" 291 | ModelReferenceIOMismatchMessage "none" 292 | ModelReferenceCSMismatchMessage "none" 293 | UnknownTsInhSupMsg "warning" 294 | ModelReferenceDataLoggingMessage "warning" 295 | ModelReferenceSymbolNameMessage "warning" 296 | ModelReferenceExtraNoncontSigs "error" 297 | StateNameClashWarn "warning" 298 | SimStateInterfaceChecksumMismatchMsg "warning" 299 | StrictBusMsg "Warning" 300 | BusNameAdapt "WarnAndRepair" 301 | NonBusSignalsTreatedAsBus "none" 302 | LoggingUnavailableSignals "error" 303 | BlockIODiagnostic "none" 304 | } 305 | Simulink.HardwareCC { 306 | $ObjectID 6 307 | Version "1.10.0" 308 | ProdBitPerChar 8 309 | ProdBitPerShort 16 310 | ProdBitPerInt 32 311 | ProdBitPerLong 32 312 | ProdIntDivRoundTo "Undefined" 313 | ProdEndianess "Unspecified" 314 | ProdWordSize 32 315 | ProdShiftRightIntArith on 316 | ProdHWDeviceType "32-bit Generic" 317 | TargetBitPerChar 8 318 | TargetBitPerShort 16 319 | TargetBitPerInt 32 320 | TargetBitPerLong 32 321 | TargetShiftRightIntArith on 322 | TargetIntDivRoundTo "Undefined" 323 | TargetEndianess "Unspecified" 324 | TargetWordSize 32 325 | TargetTypeEmulationWarnSuppressLevel 0 326 | TargetPreprocMaxBitsSint 32 327 | TargetPreprocMaxBitsUint 32 328 | TargetHWDeviceType "Specified" 329 | TargetUnknown off 330 | ProdEqTarget on 331 | } 332 | Simulink.ModelReferenceCC { 333 | $ObjectID 7 334 | Version "1.10.0" 335 | UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" 336 | CheckModelReferenceTargetMessage "error" 337 | EnableParallelModelReferenceBuilds off 338 | ParallelModelReferenceMATLABWorkerInit "None" 339 | ModelReferenceNumInstancesAllowed "Multi" 340 | PropagateVarSize "Infer from blocks in model" 341 | ModelReferencePassRootInputsByReference on 342 | ModelReferenceMinAlgLoopOccurrences off 343 | PropagateSignalLabelsOutOfModel off 344 | SupportModelReferenceSimTargetCustomCode off 345 | } 346 | Simulink.SFSimCC { 347 | $ObjectID 8 348 | Version "1.10.0" 349 | SFSimEnableDebug on 350 | SFSimOverflowDetection on 351 | SFSimEcho on 352 | SimBlas on 353 | SimCtrlC on 354 | SimExtrinsic on 355 | SimIntegrity on 356 | SimUseLocalCustomCode off 357 | SimBuildMode "sf_incremental_build" 358 | } 359 | Simulink.RTWCC { 360 | $BackupClass "Simulink.RTWCC" 361 | $ObjectID 9 362 | Version "1.10.0" 363 | Array { 364 | Type "Cell" 365 | Dimension 6 366 | Cell "IncludeHyperlinkInReport" 367 | Cell "GenerateTraceInfo" 368 | Cell "GenerateTraceReport" 369 | Cell "GenerateTraceReportSl" 370 | Cell "GenerateTraceReportSf" 371 | Cell "GenerateTraceReportEml" 372 | PropName "DisabledProps" 373 | } 374 | SystemTargetFile "grt.tlc" 375 | GenCodeOnly off 376 | MakeCommand "make_rtw" 377 | GenerateMakefile on 378 | TemplateMakefile "grt_default_tmf" 379 | GenerateReport off 380 | SaveLog off 381 | RTWVerbose on 382 | RetainRTWFile off 383 | ProfileTLC off 384 | TLCDebug off 385 | TLCCoverage off 386 | TLCAssert off 387 | ProcessScriptMode "Default" 388 | ConfigurationMode "Optimized" 389 | ConfigAtBuild off 390 | RTWUseLocalCustomCode off 391 | RTWUseSimCustomCode off 392 | IncludeHyperlinkInReport off 393 | LaunchReport off 394 | TargetLang "C" 395 | IncludeBusHierarchyInRTWFileBlockHierarchyMap off 396 | IncludeERTFirstTime off 397 | GenerateTraceInfo off 398 | GenerateTraceReport off 399 | GenerateTraceReportSl off 400 | GenerateTraceReportSf off 401 | GenerateTraceReportEml off 402 | GenerateCodeInfo off 403 | RTWCompilerOptimization "Off" 404 | CheckMdlBeforeBuild "Off" 405 | CustomRebuildMode "OnUpdate" 406 | Array { 407 | Type "Handle" 408 | Dimension 2 409 | Simulink.CodeAppCC { 410 | $ObjectID 10 411 | Version "1.10.0" 412 | Array { 413 | Type "Cell" 414 | Dimension 17 415 | Cell "IgnoreCustomStorageClasses" 416 | Cell "IgnoreTestpoints" 417 | Cell "InsertBlockDesc" 418 | Cell "SFDataObjDesc" 419 | Cell "SimulinkDataObjDesc" 420 | Cell "DefineNamingRule" 421 | Cell "SignalNamingRule" 422 | Cell "ParamNamingRule" 423 | Cell "InlinedPrmAccess" 424 | Cell "CustomSymbolStr" 425 | Cell "CustomSymbolStrGlobalVar" 426 | Cell "CustomSymbolStrType" 427 | Cell "CustomSymbolStrField" 428 | Cell "CustomSymbolStrFcn" 429 | Cell "CustomSymbolStrBlkIO" 430 | Cell "CustomSymbolStrTmpVar" 431 | Cell "CustomSymbolStrMacro" 432 | PropName "DisabledProps" 433 | } 434 | ForceParamTrailComments off 435 | GenerateComments on 436 | IgnoreCustomStorageClasses on 437 | IgnoreTestpoints off 438 | IncHierarchyInIds off 439 | MaxIdLength 31 440 | PreserveName off 441 | PreserveNameWithParent off 442 | ShowEliminatedStatement off 443 | IncAutoGenComments off 444 | SimulinkDataObjDesc off 445 | SFDataObjDesc off 446 | IncDataTypeInIds off 447 | MangleLength 1 448 | CustomSymbolStrGlobalVar "$R$N$M" 449 | CustomSymbolStrType "$N$R$M" 450 | CustomSymbolStrField "$N$M" 451 | CustomSymbolStrFcn "$R$N$M$F" 452 | CustomSymbolStrFcnArg "rt$I$N$M" 453 | CustomSymbolStrBlkIO "rtb_$N$M" 454 | CustomSymbolStrTmpVar "$N$M" 455 | CustomSymbolStrMacro "$R$N$M" 456 | DefineNamingRule "None" 457 | ParamNamingRule "None" 458 | SignalNamingRule "None" 459 | InsertBlockDesc off 460 | SimulinkBlockComments on 461 | EnableCustomComments off 462 | InlinedPrmAccess "Literals" 463 | ReqsInCode off 464 | UseSimReservedNames off 465 | } 466 | Simulink.GRTTargetCC { 467 | $BackupClass "Simulink.TargetCC" 468 | $ObjectID 11 469 | Version "1.10.0" 470 | Array { 471 | Type "Cell" 472 | Dimension 16 473 | Cell "IncludeMdlTerminateFcn" 474 | Cell "CombineOutputUpdateFcns" 475 | Cell "SuppressErrorStatus" 476 | Cell "ERTCustomFileBanners" 477 | Cell "GenerateSampleERTMain" 478 | Cell "GenerateTestInterfaces" 479 | Cell "ModelStepFunctionPrototypeControlCompliant" 480 | Cell "CPPClassGenCompliant" 481 | Cell "MultiInstanceERTCode" 482 | Cell "PurelyIntegerCode" 483 | Cell "SupportNonFinite" 484 | Cell "SupportComplex" 485 | Cell "SupportAbsoluteTime" 486 | Cell "SupportContinuousTime" 487 | Cell "SupportNonInlinedSFcns" 488 | Cell "PortableWordSizes" 489 | PropName "DisabledProps" 490 | } 491 | TargetFcnLib "ansi_tfl_table_tmw.mat" 492 | TargetLibSuffix "" 493 | TargetPreCompLibLocation "" 494 | TargetFunctionLibrary "ANSI_C" 495 | UtilityFuncGeneration "Auto" 496 | ERTMultiwordTypeDef "System defined" 497 | ERTCodeCoverageTool "None" 498 | ERTMultiwordLength 256 499 | MultiwordLength 2048 500 | GenerateFullHeader on 501 | GenerateSampleERTMain off 502 | GenerateTestInterfaces off 503 | IsPILTarget off 504 | ModelReferenceCompliant on 505 | ParMdlRefBuildCompliant on 506 | CompOptLevelCompliant on 507 | IncludeMdlTerminateFcn on 508 | GeneratePreprocessorConditionals "Disable all" 509 | CombineOutputUpdateFcns off 510 | SuppressErrorStatus off 511 | ERTFirstTimeCompliant off 512 | IncludeFileDelimiter "Auto" 513 | ERTCustomFileBanners off 514 | SupportAbsoluteTime on 515 | LogVarNameModifier "rt_" 516 | MatFileLogging on 517 | MultiInstanceERTCode off 518 | SupportNonFinite on 519 | SupportComplex on 520 | PurelyIntegerCode off 521 | SupportContinuousTime on 522 | SupportNonInlinedSFcns on 523 | SupportVariableSizeSignals off 524 | EnableShiftOperators on 525 | ParenthesesLevel "Nominal" 526 | PortableWordSizes off 527 | ModelStepFunctionPrototypeControlCompliant off 528 | CPPClassGenCompliant off 529 | AutosarCompliant off 530 | UseMalloc off 531 | ExtMode off 532 | ExtModeStaticAlloc off 533 | ExtModeTesting off 534 | ExtModeStaticAllocSize 1000000 535 | ExtModeTransport 0 536 | ExtModeMexFile "ext_comm" 537 | ExtModeIntrfLevel "Level1" 538 | RTWCAPISignals off 539 | RTWCAPIParams off 540 | RTWCAPIStates off 541 | GenerateASAP2 off 542 | } 543 | PropName "Components" 544 | } 545 | } 546 | SSC.SimscapeCC { 547 | $ObjectID 12 548 | Version "1.0" 549 | Array { 550 | Type "Cell" 551 | Dimension 1 552 | Cell "Name" 553 | PropName "DisabledProps" 554 | } 555 | Array { 556 | Type "Handle" 557 | Dimension 1 558 | MECH.SimMechanicsCC { 559 | $ObjectID 13 560 | Version "1.10.0" 561 | Name "SimMechanics" 562 | WarnOnRedundantConstraints on 563 | WarnOnSingularInitialAssembly off 564 | ShowCutJoints off 565 | VisOnUpdateDiagram on 566 | VisDuringSimulation on 567 | EnableVisSimulationTime on 568 | VisSampleTime "0" 569 | DisableBodyVisControl off 570 | ShowCG on 571 | ShowCS on 572 | ShowOnlyPortCS off 573 | HighlightModel on 574 | FramesToBeSkipped "0" 575 | AnimationDelay "3" 576 | RecordAVI off 577 | CompressAVI on 578 | AutoFitVis "off" 579 | EnableSelection on 580 | LastVizWinPosition "[-1 -1 -1 -1]" 581 | CamPosition "[0 0 0]" 582 | CamTarget "[0 0 -1]" 583 | CamUpVector "[0 1 0]" 584 | CamHeight "-1" 585 | CamViewAngle "0" 586 | VisBackgroundColor "[0.9 0.9 0.95]" 587 | DefaultBodyColor "[1 0 0]" 588 | MDLBodyVisualizationType "Convex hull from body CS locations" 589 | OVRRIDBodyVisualizationType "NONE" 590 | } 591 | PropName "Components" 592 | } 593 | Name "Simscape" 594 | EditingMode "Full" 595 | ExplicitSolverDiagnosticOptions "warning" 596 | InputDerivativeDiagnosticOptions "warning" 597 | SimscapeLogType "none" 598 | SimscapeLogName "simlog" 599 | SimscapeLogLimitData on 600 | SimscapeLogDataHistory 5000 601 | } 602 | PropName "Components" 603 | } 604 | Name "Configuration" 605 | CurrentDlgPage "Simscape/SimMechanics" 606 | ConfigPrmDlgPosition " [ 400, 210, 1280, 840 ] " 607 | } 608 | PropName "ConfigurationSets" 609 | } 610 | Simulink.ConfigSet { 611 | $PropName "ActiveConfigurationSet" 612 | $ObjectID 1 613 | } 614 | BlockDefaults { 615 | ForegroundColor "black" 616 | BackgroundColor "white" 617 | DropShadow off 618 | NamePlacement "normal" 619 | FontName "Helvetica" 620 | FontSize 10 621 | FontWeight "normal" 622 | FontAngle "normal" 623 | ShowName on 624 | BlockRotation 0 625 | BlockMirror off 626 | } 627 | AnnotationDefaults { 628 | HorizontalAlignment "center" 629 | VerticalAlignment "middle" 630 | ForegroundColor "black" 631 | BackgroundColor "white" 632 | DropShadow off 633 | FontName "Helvetica" 634 | FontSize 10 635 | FontWeight "normal" 636 | FontAngle "normal" 637 | UseDisplayTextAsClickCallback off 638 | } 639 | LineDefaults { 640 | FontName "Helvetica" 641 | FontSize 9 642 | FontWeight "normal" 643 | FontAngle "normal" 644 | } 645 | BlockParameterDefaults { 646 | } 647 | System { 648 | Name "fourBar" 649 | Location [130, 404, 1643, 835] 650 | Open on 651 | ModelBrowserVisibility off 652 | ModelBrowserWidth 200 653 | ScreenColor "white" 654 | PaperOrientation "landscape" 655 | PaperPositionMode "auto" 656 | PaperType "usletter" 657 | PaperUnits "inches" 658 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 659 | TiledPageScale 1 660 | ShowPageBoundaries off 661 | ZoomFactor "100" 662 | ReportName "simulink-default.rpt" 663 | SIDHighWatermark 13 664 | Block { 665 | BlockType Reference 666 | Name "Machine\nEnvironment" 667 | SID 1 668 | Ports [0, 0, 0, 0, 0, 0, 1] 669 | Position [40, 70, 80, 90] 670 | BlockMirror on 671 | ShowName off 672 | LibraryVersion "1.1" 673 | DialogController "MECH.DialogSource" 674 | SourceBlock "mblibv1/Bodies/Machine\nEnvironment" 675 | SourceType "Machine Environment" 676 | ShowPortLabels "FromPortIcon" 677 | SystemSampleTime "-1" 678 | FunctionWithSeparateData off 679 | RTWMemSecFuncInitTerm "Inherit from model" 680 | RTWMemSecFuncExecute "Inherit from model" 681 | RTWMemSecDataConstants "Inherit from model" 682 | RTWMemSecDataInternal "Inherit from model" 683 | RTWMemSecDataParameters "Inherit from model" 684 | PortType "env" 685 | PhysicalDomain "Mechanical" 686 | ClassName "Environment" 687 | DialogTemplateClass "MECH.MachineEnvironment" 688 | SyncWhenCopied "off" 689 | Gravity "[0 -9.81 0]" 690 | GravityUnits "m/s^2" 691 | GravityAsSignal off 692 | Dimensionality "Auto-detect" 693 | AnalysisType "Forward dynamics" 694 | LinearAssemblyTolerance "1e-3" 695 | LinearAssemblyToleranceUnits "m" 696 | AngularAssemblyTolerance "1e-3" 697 | AngularAssemblyToleranceUnits "rad" 698 | ConstraintSolverType "Stabilizing" 699 | ConstraintRelTolerance "1e-4" 700 | ConstraintAbsTolerance "1e-4" 701 | UseRobustSingularityHandling off 702 | RedundancyAnalysisToleranceType "Automatically select tolerance" 703 | RedundancyAnalysisTolerance "1e-14" 704 | StatePerturbationType "Fixed" 705 | PerturbationSize "1e-5" 706 | VisualizeMachine on 707 | BodyVisualizationType "Use model default body geometries" 708 | BodyColorSelMode "Use model default" 709 | DefaultBodyColor "[1 0 0]" 710 | } 711 | Block { 712 | BlockType Reference 713 | Name "PRT0001" 714 | SID 2 715 | Ports [0, 0, 0, 0, 0, 1, 1] 716 | Position [835, 40, 895, 80] 717 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 718 | LibraryVersion "1.1" 719 | DialogController "MECH.DynMechDlgSource" 720 | SourceBlock "mblibv1/Bodies/Body" 721 | SourceType "Body" 722 | PhysicalDomain "mechanical" 723 | SubClassName "Unknown" 724 | LeftPortType "workingframe" 725 | RightPortType "workingframe" 726 | LConnTagsString "CS2" 727 | RConnTagsString "CS3" 728 | UpdateFromCAD "on" 729 | PMImportedID "40" 730 | ClassName "Body" 731 | DialogClass "MechanicalBodyBlock" 732 | Mass "1595.92" 733 | MassUnits "lbm" 734 | InertiaUnits "lbm*in^2" 735 | Inertia "[8126.51,0,-0.193068;0,386552,0;-0.193068,0,385075]" 736 | Shape "Cylinder" 737 | ShapeDims "[1 1]" 738 | ShapeUnits "m" 739 | ShapeUse "false" 740 | Density "1" 741 | DensityUnits "kg/m^3" 742 | DensityUse "false" 743 | GraphicsMode "GFXFILE" 744 | GraphicsFileName "PRT0001.stl" 745 | BodyColorSelMode "MACHINE_DEFAULT" 746 | BodyColor "[1 0 0]" 747 | AttachedToCS "CS1" 748 | CG "Right$CG$[-220.558 38.4366 7.5]$WORLD$WORLD$in$[-0.319989 0 0.947421;0.947421 0 0.319989;0 1 0]$3x3 T" 749 | "ransform$rad$WORLD$false$40::CG(AUTOGEN)" 750 | WorkingFrames "Right$CS1$[-145.017 -110.606 5]$WORLD$WORLD$in$[-0.319989 0 0.947421;0.947421 0 0.319989;0 " 751 | "1 0]$3x3 Transform$rad$WORLD$false$40::CS1(AUTOGEN)#Left$CS2$[-212.558 14.7511 5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 " 752 | "0 1]$3x3 Transform$rad$WORLD$true$39:-:40::40(AUTOGEN)#Right$CS3$[-228.557 62.1221 10]$WORLD$WORLD$in$[1 0 0;0 1" 753 | " 0;0 0 1]$3x3 Transform$rad$WORLD$true$40:-:41::40(AUTOGEN)" 754 | CGPos "[-220.558 38.4366 7.5]" 755 | CGRot "[-0.319989 0 0.947421;0.947421 0 0.319989;0 1 0]" 756 | CS0Pos "[]" 757 | CS0Rot "[]" 758 | CS1Pos "[-145.017 -110.606 5]" 759 | CS1Rot "[-0.319989 0 0.947421;0.947421 0 0.319989;0 1 0]" 760 | CS2Pos "[-212.558 14.7511 5]" 761 | CS2Rot "[1 0 0;0 1 0;0 0 1]" 762 | CS3Pos "[-228.557 62.1221 10]" 763 | CS3Rot "[1 0 0;0 1 0;0 0 1]" 764 | CS4Pos "[]" 765 | CS4Rot "[]" 766 | CS5Pos "[]" 767 | CS5Rot "[]" 768 | CS6Pos "[]" 769 | CS6Rot "[]" 770 | CS7Pos "[]" 771 | CS7Rot "[]" 772 | CS8Pos "[]" 773 | CS8Rot "[]" 774 | CS9Pos "[]" 775 | CS9Rot "[]" 776 | CS10Pos "[]" 777 | CS10Rot "[]" 778 | CS11Pos "[]" 779 | CS11Rot "[]" 780 | CS12Pos "[]" 781 | CS12Rot "[]" 782 | CS13Pos "[]" 783 | CS13Rot "[]" 784 | CS14Pos "[]" 785 | CS14Rot "[]" 786 | CS15Pos "[]" 787 | CS15Rot "[]" 788 | CS16Pos "[]" 789 | CS16Rot "[]" 790 | CS17Pos "[]" 791 | CS17Rot "[]" 792 | CS18Pos "[]" 793 | CS18Rot "[]" 794 | CS19Pos "[]" 795 | CS19Rot "[]" 796 | CS20Pos "[]" 797 | CS20Rot "[]" 798 | } 799 | Block { 800 | BlockType Reference 801 | Name "PRT0002" 802 | SID 3 803 | Ports [0, 0, 0, 0, 0, 1, 1] 804 | Position [1105, 75, 1165, 115] 805 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 806 | LibraryVersion "1.1" 807 | DialogController "MECH.DynMechDlgSource" 808 | SourceBlock "mblibv1/Bodies/Body" 809 | SourceType "Body" 810 | PhysicalDomain "mechanical" 811 | SubClassName "Unknown" 812 | LeftPortType "workingframe" 813 | RightPortType "workingframe" 814 | LConnTagsString "CS2" 815 | RConnTagsString "CS3" 816 | UpdateFromCAD "on" 817 | PMImportedID "41" 818 | ClassName "Body" 819 | DialogClass "MechanicalBodyBlock" 820 | Mass "2485.02" 821 | MassUnits "lbm" 822 | InertiaUnits "lbm*in^2" 823 | Inertia "[12670,0.413616,0;0.413616,1.43591e+006,0;0,0,1.43822e+006]" 824 | Shape "Cylinder" 825 | ShapeDims "[1 1]" 826 | ShapeUnits "m" 827 | ShapeUse "false" 828 | Density "1" 829 | DensityUnits "kg/m^3" 830 | DensityUse "false" 831 | GraphicsMode "GFXFILE" 832 | GraphicsFileName "PRT0002.stl" 833 | BodyColorSelMode "MACHINE_DEFAULT" 834 | BodyColor "[1 0 0]" 835 | AttachedToCS "CS1" 836 | CG "Right$CG$[-210.88 98.0041 12.5]$WORLD$WORLD$in$[0.44193 -0.89705 0;0.89705 0.44193 0;0 0 1]$3x3 Trans" 837 | "form$rad$WORLD$false$41::CG(AUTOGEN)" 838 | WorkingFrames "Right$CS1$[-161.836 118.433 10]$WORLD$WORLD$in$[0.44193 -0.89705 0;0.89705 0.44193 0;0 0 1]" 839 | "$3x3 Transform$rad$WORLD$false$41::CS1(AUTOGEN)#Left$CS2$[-228.557 62.1221 10]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1" 840 | "]$3x3 Transform$rad$WORLD$true$40:-:41::41(AUTOGEN)#Right$CS3$[-193.203 133.886 10]$WORLD$WORLD$in$[1 0 0;0 1 0;" 841 | "0 0 1]$3x3 Transform$rad$WORLD$true$41:-:45::41(AUTOGEN)" 842 | CGPos "[-210.88 98.0041 12.5]" 843 | CGRot "[0.44193 -0.89705 0;0.89705 0.44193 0;0 0 1]" 844 | CS0Pos "[]" 845 | CS0Rot "[]" 846 | CS1Pos "[-161.836 118.433 10]" 847 | CS1Rot "[0.44193 -0.89705 0;0.89705 0.44193 0;0 0 1]" 848 | CS2Pos "[-228.557 62.1221 10]" 849 | CS2Rot "[1 0 0;0 1 0;0 0 1]" 850 | CS3Pos "[-193.203 133.886 10]" 851 | CS3Rot "[1 0 0;0 1 0;0 0 1]" 852 | CS4Pos "[]" 853 | CS4Rot "[]" 854 | CS5Pos "[]" 855 | CS5Rot "[]" 856 | CS6Pos "[]" 857 | CS6Rot "[]" 858 | CS7Pos "[]" 859 | CS7Rot "[]" 860 | CS8Pos "[]" 861 | CS8Rot "[]" 862 | CS9Pos "[]" 863 | CS9Rot "[]" 864 | CS10Pos "[]" 865 | CS10Rot "[]" 866 | CS11Pos "[]" 867 | CS11Rot "[]" 868 | CS12Pos "[]" 869 | CS12Rot "[]" 870 | CS13Pos "[]" 871 | CS13Rot "[]" 872 | CS14Pos "[]" 873 | CS14Rot "[]" 874 | CS15Pos "[]" 875 | CS15Rot "[]" 876 | CS16Pos "[]" 877 | CS16Rot "[]" 878 | CS17Pos "[]" 879 | CS17Rot "[]" 880 | CS18Pos "[]" 881 | CS18Rot "[]" 882 | CS19Pos "[]" 883 | CS19Rot "[]" 884 | CS20Pos "[]" 885 | CS20Rot "[]" 886 | } 887 | Block { 888 | BlockType Reference 889 | Name "PRT0003" 890 | SID 4 891 | Ports [0, 0, 0, 0, 0, 2] 892 | Position [1425, 107, 1485, 163] 893 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 894 | LibraryVersion "1.1" 895 | DialogController "MECH.DynMechDlgSource" 896 | SourceBlock "mblibv1/Bodies/Body" 897 | SourceType "Body" 898 | PhysicalDomain "mechanical" 899 | SubClassName "Unknown" 900 | LeftPortType "workingframe" 901 | RightPortType "workingframe" 902 | LConnTagsString "CS2|CS3" 903 | UpdateFromCAD "on" 904 | PMImportedID "45" 905 | ClassName "Body" 906 | DialogClass "MechanicalBodyBlock" 907 | Mass "6073.19" 908 | MassUnits "lbm" 909 | InertiaUnits "lbm*in^2" 910 | Inertia "[30933.7,2.09331,0;2.09331,2.07808e+007,0;0,0,2.07865e+007]" 911 | Shape "Cylinder" 912 | ShapeDims "[1 1]" 913 | ShapeUnits "m" 914 | ShapeUse "false" 915 | Density "1" 916 | DensityUnits "kg/m^3" 917 | DensityUse "false" 918 | GraphicsMode "GFXFILE" 919 | GraphicsFileName "PRT0003.stl" 920 | BodyColorSelMode "MACHINE_DEFAULT" 921 | BodyColor "[1 0 0]" 922 | AttachedToCS "CS1" 923 | CG "Right$CG$[-112.88 74.3186 7.5]$WORLD$WORLD$in$[0.803225 0.595675 0;-0.595675 0.803225 0;0 0 1]$3x3 Tr" 924 | "ansform$rad$WORLD$false$45::CG(AUTOGEN)" 925 | WorkingFrames "Right$CS1$[-274.811 216.462 5]$WORLD$WORLD$in$[0.803225 0.595675 0;-0.595675 0.803225 0;0 0" 926 | " 1]$3x3 Transform$rad$WORLD$false$45::CS1(AUTOGEN)#Left$CS2$[-32.5579 14.7511 5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0" 927 | " 1]$3x3 Transform$rad$WORLD$true$39:-:45::45(AUTOGEN)#Left$CS3$[-193.203 133.886 10]$WORLD$WORLD$in$[1 0 0;0 1 0" 928 | ";0 0 1]$3x3 Transform$rad$WORLD$true$41:-:45::45(AUTOGEN)" 929 | CGPos "[-112.88 74.3186 7.5]" 930 | CGRot "[0.803225 0.595675 0;-0.595675 0.803225 0;0 0 1]" 931 | CS0Pos "[]" 932 | CS0Rot "[]" 933 | CS1Pos "[-274.811 216.462 5]" 934 | CS1Rot "[0.803225 0.595675 0;-0.595675 0.803225 0;0 0 1]" 935 | CS2Pos "[-32.5579 14.7511 5]" 936 | CS2Rot "[1 0 0;0 1 0;0 0 1]" 937 | CS3Pos "[-193.203 133.886 10]" 938 | CS3Rot "[1 0 0;0 1 0;0 0 1]" 939 | CS4Pos "[]" 940 | CS4Rot "[]" 941 | CS5Pos "[]" 942 | CS5Rot "[]" 943 | CS6Pos "[]" 944 | CS6Rot "[]" 945 | CS7Pos "[]" 946 | CS7Rot "[]" 947 | CS8Pos "[]" 948 | CS8Rot "[]" 949 | CS9Pos "[]" 950 | CS9Rot "[]" 951 | CS10Pos "[]" 952 | CS10Rot "[]" 953 | CS11Pos "[]" 954 | CS11Rot "[]" 955 | CS12Pos "[]" 956 | CS12Rot "[]" 957 | CS13Pos "[]" 958 | CS13Rot "[]" 959 | CS14Pos "[]" 960 | CS14Rot "[]" 961 | CS15Pos "[]" 962 | CS15Rot "[]" 963 | CS16Pos "[]" 964 | CS16Rot "[]" 965 | CS17Pos "[]" 966 | CS17Rot "[]" 967 | CS18Pos "[]" 968 | CS18Rot "[]" 969 | CS19Pos "[]" 970 | CS19Rot "[]" 971 | CS20Pos "[]" 972 | CS20Rot "[]" 973 | } 974 | Block { 975 | BlockType Reference 976 | Name "PRT0004" 977 | SID 5 978 | Ports [0, 0, 0, 0, 0, 1, 2] 979 | Position [560, 102, 620, 158] 980 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 981 | LibraryVersion "1.1" 982 | DialogController "MECH.DynMechDlgSource" 983 | SourceBlock "mblibv1/Bodies/Body" 984 | SourceType "Body" 985 | PhysicalDomain "mechanical" 986 | SubClassName "Unknown" 987 | LeftPortType "workingframe" 988 | RightPortType "workingframe" 989 | LConnTagsString "CS2" 990 | RConnTagsString "CS3|CS4" 991 | UpdateFromCAD "on" 992 | PMImportedID "39" 993 | ClassName "Body" 994 | DialogClass "MechanicalBodyBlock" 995 | Mass "4527.49" 996 | MassUnits "lbm" 997 | InertiaUnits "lbm*in^2" 998 | Inertia "[18921,1.31502,0;1.31502,1.2401e+007,0;0,0,1.2401e+007]" 999 | Shape "Cylinder" 1000 | ShapeDims "[1 1]" 1001 | ShapeUnits "m" 1002 | ShapeUse "false" 1003 | Density "1" 1004 | DensityUnits "kg/m^3" 1005 | DensityUse "false" 1006 | GraphicsMode "GFXFILE" 1007 | GraphicsFileName "PRT0004.stl" 1008 | BodyColorSelMode "MACHINE_DEFAULT" 1009 | BodyColor "[1 0 0]" 1010 | AttachedToCS "CS1" 1011 | CG "Right$CG$[-122.558 14.7511 2.5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$false$39::" 1012 | "CG(AUTOGEN)" 1013 | WorkingFrames "Right$CS1$[0 0 0]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$false$39::CS1(" 1014 | "AUTOGEN)#Left$CS2$[-122.558 14.7511 2.5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$true$39:-:Ro" 1015 | "otPart::39(AUTOGEN)#Right$CS3$[-212.558 14.7511 5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$tr" 1016 | "ue$39:-:40::39(AUTOGEN)#Right$CS4$[-32.5579 14.7511 5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORL" 1017 | "D$true$39:-:45::39(AUTOGEN)" 1018 | CGPos "[-122.558 14.7511 2.5]" 1019 | CGRot "[1 0 0;0 1 0;0 0 1]" 1020 | CS0Pos "[]" 1021 | CS0Rot "[]" 1022 | CS1Pos "[0 0 0]" 1023 | CS1Rot "[1 0 0;0 1 0;0 0 1]" 1024 | CS2Pos "[-122.558 14.7511 2.5]" 1025 | CS2Rot "[1 0 0;0 1 0;0 0 1]" 1026 | CS3Pos "[-212.558 14.7511 5]" 1027 | CS3Rot "[1 0 0;0 1 0;0 0 1]" 1028 | CS4Pos "[-32.5579 14.7511 5]" 1029 | CS4Rot "[1 0 0;0 1 0;0 0 1]" 1030 | CS5Pos "[]" 1031 | CS5Rot "[]" 1032 | CS6Pos "[]" 1033 | CS6Rot "[]" 1034 | CS7Pos "[]" 1035 | CS7Rot "[]" 1036 | CS8Pos "[]" 1037 | CS8Rot "[]" 1038 | CS9Pos "[]" 1039 | CS9Rot "[]" 1040 | CS10Pos "[]" 1041 | CS10Rot "[]" 1042 | CS11Pos "[]" 1043 | CS11Rot "[]" 1044 | CS12Pos "[]" 1045 | CS12Rot "[]" 1046 | CS13Pos "[]" 1047 | CS13Rot "[]" 1048 | CS14Pos "[]" 1049 | CS14Rot "[]" 1050 | CS15Pos "[]" 1051 | CS15Rot "[]" 1052 | CS16Pos "[]" 1053 | CS16Rot "[]" 1054 | CS17Pos "[]" 1055 | CS17Rot "[]" 1056 | CS18Pos "[]" 1057 | CS18Rot "[]" 1058 | CS19Pos "[]" 1059 | CS19Rot "[]" 1060 | CS20Pos "[]" 1061 | CS20Rot "[]" 1062 | } 1063 | Block { 1064 | BlockType Reference 1065 | Name "Revolute" 1066 | SID 6 1067 | Ports [0, 0, 0, 0, 0, 1, 1] 1068 | Position [700, 40, 750, 90] 1069 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1070 | LibraryVersion "1.1" 1071 | DialogController "MECH.DynMechDlgSource" 1072 | SourceBlock "mblibv1/Joints/Revolute" 1073 | SourceType "Revolute" 1074 | PhysicalDomain "mechanical" 1075 | SubClassName "Unknown" 1076 | LeftPortType "blob" 1077 | RightPortType "blob" 1078 | LConnTagsString "__newl0" 1079 | RConnTagsString "__newr0" 1080 | UpdateFromCAD "on" 1081 | PMImportedID "39:-:40" 1082 | NumSAPorts "0" 1083 | CutJoint "off" 1084 | MarkAsCut "off" 1085 | Primitives "prismatic" 1086 | PrimitiveProps "R1$WORLD$[0,0,-1]$revolute" 1087 | ClassName "Joint" 1088 | DialogClass "JointBlock" 1089 | R1Axis "[0,0,-1]" 1090 | } 1091 | Block { 1092 | BlockType Reference 1093 | Name "Revolute1" 1094 | SID 7 1095 | Ports [0, 0, 0, 0, 0, 1, 1] 1096 | Position [840, 160, 890, 210] 1097 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1098 | LibraryVersion "1.1" 1099 | DialogController "MECH.DynMechDlgSource" 1100 | SourceBlock "mblibv1/Joints/Revolute" 1101 | SourceType "Revolute" 1102 | PhysicalDomain "mechanical" 1103 | SubClassName "Unknown" 1104 | LeftPortType "blob" 1105 | RightPortType "blob" 1106 | LConnTagsString "__newl0" 1107 | RConnTagsString "__newr0" 1108 | UpdateFromCAD "on" 1109 | PMImportedID "39:-:45" 1110 | NumSAPorts "0" 1111 | CutJoint "off" 1112 | MarkAsCut "off" 1113 | Primitives "prismatic" 1114 | PrimitiveProps "R1$WORLD$[0,0,-1]$revolute" 1115 | ClassName "Joint" 1116 | DialogClass "JointBlock" 1117 | R1Axis "[0,0,-1]" 1118 | } 1119 | Block { 1120 | BlockType Reference 1121 | Name "Revolute2" 1122 | SID 8 1123 | Ports [0, 0, 0, 0, 0, 1, 1] 1124 | Position [975, 65, 1025, 115] 1125 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1126 | LibraryVersion "1.1" 1127 | DialogController "MECH.DynMechDlgSource" 1128 | SourceBlock "mblibv1/Joints/Revolute" 1129 | SourceType "Revolute" 1130 | PhysicalDomain "mechanical" 1131 | SubClassName "Unknown" 1132 | LeftPortType "blob" 1133 | RightPortType "blob" 1134 | LConnTagsString "__newl0" 1135 | RConnTagsString "__newr0" 1136 | UpdateFromCAD "on" 1137 | PMImportedID "40:-:41" 1138 | NumSAPorts "0" 1139 | CutJoint "off" 1140 | MarkAsCut "off" 1141 | Primitives "prismatic" 1142 | PrimitiveProps "R1$WORLD$[0,0,-1]$revolute" 1143 | ClassName "Joint" 1144 | DialogClass "JointBlock" 1145 | R1Axis "[0,0,-1]" 1146 | } 1147 | Block { 1148 | BlockType Reference 1149 | Name "Revolute3" 1150 | SID 9 1151 | Ports [0, 0, 0, 0, 0, 1, 1] 1152 | Position [1245, 75, 1295, 125] 1153 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1154 | LibraryVersion "1.1" 1155 | DialogController "MECH.DynMechDlgSource" 1156 | SourceBlock "mblibv1/Joints/Revolute" 1157 | SourceType "Revolute" 1158 | PhysicalDomain "mechanical" 1159 | SubClassName "Unknown" 1160 | LeftPortType "blob" 1161 | RightPortType "blob" 1162 | LConnTagsString "__newl0" 1163 | RConnTagsString "__newr0" 1164 | UpdateFromCAD "on" 1165 | PMImportedID "41:-:45" 1166 | NumSAPorts "0" 1167 | CutJoint "off" 1168 | MarkAsCut "off" 1169 | Primitives "prismatic" 1170 | PrimitiveProps "R1$WORLD$[0,0,-1]$revolute" 1171 | ClassName "Joint" 1172 | DialogClass "JointBlock" 1173 | R1Axis "[0,0,-1]" 1174 | } 1175 | Block { 1176 | BlockType Reference 1177 | Name "RootGround" 1178 | SID 10 1179 | Ports [0, 0, 0, 0, 0, 1, 1] 1180 | Position [40, 110, 80, 150] 1181 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1182 | LibraryVersion "1.1" 1183 | UserDataPersistent on 1184 | UserData "DataTag0" 1185 | DialogController "MECH.DynMechDlgSource" 1186 | SourceBlock "mblibv1/Bodies/Ground" 1187 | SourceType "Ground" 1188 | ShowPortLabels "FromPortIcon" 1189 | SystemSampleTime "-1" 1190 | FunctionWithSeparateData off 1191 | RTWMemSecFuncInitTerm "Inherit from model" 1192 | RTWMemSecFuncExecute "Inherit from model" 1193 | RTWMemSecDataConstants "Inherit from model" 1194 | RTWMemSecDataInternal "Inherit from model" 1195 | RTWMemSecDataParameters "Inherit from model" 1196 | UpdateFromCAD "on" 1197 | PMImportedID "RootGround" 1198 | LeftPortType "env" 1199 | RightPortType "workingframe" 1200 | PhysicalDomain "Mechanical" 1201 | DialogClass "GroundBlock" 1202 | ClassName "Ground" 1203 | CoordPosition "[-144.157,56.0579,6.80441]" 1204 | CoordPositionUnits "in" 1205 | StateVectorMgrId "0" 1206 | MachineId "[1 0]" 1207 | ShowEnvPort on 1208 | } 1209 | Block { 1210 | BlockType Reference 1211 | Name "RootPart" 1212 | SID 11 1213 | Ports [0, 0, 0, 0, 0, 1, 1] 1214 | Position [290, 110, 350, 150] 1215 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1216 | LibraryVersion "1.1" 1217 | DialogController "MECH.DynMechDlgSource" 1218 | SourceBlock "mblibv1/Bodies/Body" 1219 | SourceType "Body" 1220 | PhysicalDomain "mechanical" 1221 | SubClassName "Unknown" 1222 | LeftPortType "workingframe" 1223 | RightPortType "workingframe" 1224 | LConnTagsString "CS3" 1225 | RConnTagsString "CS2" 1226 | UpdateFromCAD "on" 1227 | PMImportedID "RootPart" 1228 | ClassName "Body" 1229 | DialogClass "MechanicalBodyBlock" 1230 | Mass "0" 1231 | MassUnits "lbm" 1232 | InertiaUnits "lbm*in^2" 1233 | Inertia "[0,0,0;0,0,0;0,0,0]" 1234 | Shape "Cylinder" 1235 | ShapeDims "[1 1]" 1236 | ShapeUnits "m" 1237 | ShapeUse "false" 1238 | Density "1" 1239 | DensityUnits "kg/m^3" 1240 | DensityUse "false" 1241 | GraphicsMode "MACHINE_DEFAULT" 1242 | BodyColorSelMode "MACHINE_DEFAULT" 1243 | BodyColor "[1 0 0]" 1244 | AttachedToCS "CS1" 1245 | CG "Right$CG$[-144.157 56.0579 6.80441]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$false$" 1246 | "RootPart::CG(AUTOGEN)" 1247 | WorkingFrames "Right$CS1$[0 0 0]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$false$RootPart" 1248 | "::CS1(AUTOGEN)#Right$CS2$[-122.558 14.7511 2.5]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Transform$rad$WORLD$true$" 1249 | "39:-:RootPart::RootPart(AUTOGEN)#Left$CS3$[-144.157 56.0579 6.80441]$WORLD$WORLD$in$[1 0 0;0 1 0;0 0 1]$3x3 Tran" 1250 | "sform$rad$WORLD$true$RootGround:-:RootPart::RootPart(AUTOGEN)" 1251 | CGPos "[-144.157 56.0579 6.80441]" 1252 | CGRot "[1 0 0;0 1 0;0 0 1]" 1253 | CS0Pos "[]" 1254 | CS0Rot "[]" 1255 | CS1Pos "[0 0 0]" 1256 | CS1Rot "[1 0 0;0 1 0;0 0 1]" 1257 | CS2Pos "[-122.558 14.7511 2.5]" 1258 | CS2Rot "[1 0 0;0 1 0;0 0 1]" 1259 | CS3Pos "[-144.157 56.0579 6.80441]" 1260 | CS3Rot "[1 0 0;0 1 0;0 0 1]" 1261 | CS4Pos "[]" 1262 | CS4Rot "[]" 1263 | CS5Pos "[]" 1264 | CS5Rot "[]" 1265 | CS6Pos "[]" 1266 | CS6Rot "[]" 1267 | CS7Pos "[]" 1268 | CS7Rot "[]" 1269 | CS8Pos "[]" 1270 | CS8Rot "[]" 1271 | CS9Pos "[]" 1272 | CS9Rot "[]" 1273 | CS10Pos "[]" 1274 | CS10Rot "[]" 1275 | CS11Pos "[]" 1276 | CS11Rot "[]" 1277 | CS12Pos "[]" 1278 | CS12Rot "[]" 1279 | CS13Pos "[]" 1280 | CS13Rot "[]" 1281 | CS14Pos "[]" 1282 | CS14Rot "[]" 1283 | CS15Pos "[]" 1284 | CS15Rot "[]" 1285 | CS16Pos "[]" 1286 | CS16Rot "[]" 1287 | CS17Pos "[]" 1288 | CS17Rot "[]" 1289 | CS18Pos "[]" 1290 | CS18Rot "[]" 1291 | CS19Pos "[]" 1292 | CS19Rot "[]" 1293 | CS20Pos "[]" 1294 | CS20Rot "[]" 1295 | } 1296 | Block { 1297 | BlockType Reference 1298 | Name "Weld" 1299 | SID 12 1300 | Ports [0, 0, 0, 0, 0, 1, 1] 1301 | Position [430, 105, 480, 155] 1302 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1303 | LibraryVersion "1.1" 1304 | DialogController "MECH.DynMechDlgSource" 1305 | SourceBlock "mblibv1/Joints/Weld" 1306 | SourceType "Weld" 1307 | PhysicalDomain "mechanical" 1308 | SubClassName "Unknown" 1309 | LeftPortType "blob" 1310 | RightPortType "blob" 1311 | LConnTagsString "__newl0" 1312 | RConnTagsString "__newr0" 1313 | UpdateFromCAD "on" 1314 | PMImportedID "39:-:RootPart" 1315 | NumSAPorts "0" 1316 | CutJoint "off" 1317 | MarkAsCut "off" 1318 | Primitives "weld" 1319 | PrimitiveProps "W$WORLD$[0.57735,0.57735,0.57735]$weld" 1320 | ClassName "Joint" 1321 | DialogClass "JointBlock" 1322 | WAxis "[0.57735,0.57735,0.57735]" 1323 | } 1324 | Block { 1325 | BlockType Reference 1326 | Name "Weld1" 1327 | SID 13 1328 | Ports [0, 0, 0, 0, 0, 1, 1] 1329 | Position [160, 105, 210, 155] 1330 | ForegroundColor "[0.000000, 0.501961, 0.752941]" 1331 | LibraryVersion "1.1" 1332 | DialogController "MECH.DynMechDlgSource" 1333 | SourceBlock "mblibv1/Joints/Weld" 1334 | SourceType "Weld" 1335 | PhysicalDomain "mechanical" 1336 | SubClassName "Unknown" 1337 | LeftPortType "blob" 1338 | RightPortType "blob" 1339 | LConnTagsString "__newl0" 1340 | RConnTagsString "__newr0" 1341 | UpdateFromCAD "on" 1342 | PMImportedID "RootGround:-:RootPart" 1343 | NumSAPorts "0" 1344 | CutJoint "off" 1345 | MarkAsCut "off" 1346 | Primitives "weld" 1347 | PrimitiveProps "W$WORLD$[0.57735,0.57735,0.57735]$weld" 1348 | ClassName "Joint" 1349 | DialogClass "JointBlock" 1350 | WAxis "[0.57735,0.57735,0.57735]" 1351 | } 1352 | Line { 1353 | LineType "Connection" 1354 | SrcBlock "RootPart" 1355 | SrcPort RConn1 1356 | DstBlock "Weld" 1357 | DstPort LConn1 1358 | } 1359 | Line { 1360 | LineType "Connection" 1361 | SrcBlock "Weld" 1362 | SrcPort RConn1 1363 | DstBlock "PRT0004" 1364 | DstPort LConn1 1365 | } 1366 | Line { 1367 | LineType "Connection" 1368 | SrcBlock "PRT0004" 1369 | SrcPort RConn1 1370 | Points [25, 0; 0, -50] 1371 | DstBlock "Revolute" 1372 | DstPort LConn1 1373 | } 1374 | Line { 1375 | LineType "Connection" 1376 | SrcBlock "Revolute" 1377 | SrcPort RConn1 1378 | Points [25, 0; 0, -5] 1379 | DstBlock "PRT0001" 1380 | DstPort LConn1 1381 | } 1382 | Line { 1383 | LineType "Connection" 1384 | SrcBlock "PRT0004" 1385 | SrcPort RConn2 1386 | Points [95, 0; 0, 40] 1387 | DstBlock "Revolute1" 1388 | DstPort LConn1 1389 | } 1390 | Line { 1391 | LineType "Connection" 1392 | SrcBlock "Revolute1" 1393 | SrcPort RConn1 1394 | Points [450, 0; 0, -65] 1395 | DstBlock "PRT0003" 1396 | DstPort LConn1 1397 | } 1398 | Line { 1399 | LineType "Connection" 1400 | SrcBlock "PRT0001" 1401 | SrcPort RConn1 1402 | Points [25, 0; 0, 30] 1403 | DstBlock "Revolute2" 1404 | DstPort LConn1 1405 | } 1406 | Line { 1407 | LineType "Connection" 1408 | SrcBlock "Revolute2" 1409 | SrcPort RConn1 1410 | Points [25, 0; 0, 5] 1411 | DstBlock "PRT0002" 1412 | DstPort LConn1 1413 | } 1414 | Line { 1415 | LineType "Connection" 1416 | SrcBlock "PRT0002" 1417 | SrcPort RConn1 1418 | Points [25, 0; 0, 5] 1419 | DstBlock "Revolute3" 1420 | DstPort LConn1 1421 | } 1422 | Line { 1423 | LineType "Connection" 1424 | SrcBlock "Revolute3" 1425 | SrcPort RConn1 1426 | Points [45, 0; 0, 50] 1427 | DstBlock "PRT0003" 1428 | DstPort LConn2 1429 | } 1430 | Line { 1431 | LineType "Connection" 1432 | SrcBlock "RootGround" 1433 | SrcPort RConn1 1434 | DstBlock "Weld1" 1435 | DstPort LConn1 1436 | } 1437 | Line { 1438 | LineType "Connection" 1439 | SrcBlock "Weld1" 1440 | SrcPort RConn1 1441 | DstBlock "RootPart" 1442 | DstPort LConn1 1443 | } 1444 | Line { 1445 | LineType "Connection" 1446 | SrcBlock "RootGround" 1447 | SrcPort LConn1 1448 | Points [-10, 0; 0, -50] 1449 | DstBlock "Machine\nEnvironment" 1450 | DstPort RConn1 1451 | } 1452 | } 1453 | } 1454 | MatData { 1455 | NumRecords 1 1456 | DataRecord { 1457 | Tag DataTag0 1458 | Data " %)30 . 2 8 ( ! % \" $ 2 0 0 $@ $%333 P,#$O4F]O=$" 1459 | "=R;W5N9 " 1460 | } 1461 | } 1462 | -------------------------------------------------------------------------------- /testExample/sldemo_suspn.mdl: -------------------------------------------------------------------------------- 1 | Model { 2 | Name "sldemo_suspn" 3 | Version 7.2 4 | MdlSubVersion 0 5 | GraphicalInterface { 6 | NumRootInports 0 7 | NumRootOutports 0 8 | ParameterArgumentNames "" 9 | ComputedModelVersion "1.49" 10 | NumModelReferences 0 11 | NumTestPointedSignals 8 12 | TestPointedSignal { 13 | SignalName "FrontForce" 14 | FullBlockPath "sldemo_suspn/Front Suspension" 15 | PortIndex 2 16 | LogSignal 1 17 | MaxPoints 5000 18 | Decimation 2 19 | } 20 | TestPointedSignal { 21 | SignalName "My" 22 | FullBlockPath "sldemo_suspn/Pitch moment induced by vehicle acceleration" 23 | LogSignal 1 24 | MaxPoints 5000 25 | Decimation 2 26 | } 27 | TestPointedSignal { 28 | SignalName "RearForce" 29 | FullBlockPath "sldemo_suspn/Rear Suspension" 30 | PortIndex 2 31 | LogSignal 1 32 | MaxPoints 5000 33 | Decimation 2 34 | } 35 | TestPointedSignal { 36 | SignalName "h" 37 | FullBlockPath "sldemo_suspn/Road Height" 38 | LogSignal 1 39 | MaxPoints 5000 40 | Decimation 2 41 | } 42 | TestPointedSignal { 43 | SignalName "Theta" 44 | FullBlockPath "sldemo_suspn/THETA" 45 | LogSignal 1 46 | MaxPoints 5000 47 | Decimation 2 48 | } 49 | TestPointedSignal { 50 | SignalName "Thetadot" 51 | FullBlockPath "sldemo_suspn/THETAdot" 52 | LogSignal 1 53 | MaxPoints 5000 54 | Decimation 2 55 | } 56 | TestPointedSignal { 57 | SignalName "Z" 58 | FullBlockPath "sldemo_suspn/Z" 59 | LogSignal 1 60 | MaxPoints 5000 61 | Decimation 2 62 | } 63 | TestPointedSignal { 64 | SignalName "Zdot" 65 | FullBlockPath "sldemo_suspn/Zdot" 66 | LogSignal 1 67 | MaxPoints 5000 68 | Decimation 2 69 | } 70 | } 71 | Description "Automotive Suspension \n\nThis demo describes a simplified half-car model that includes an independe" 72 | "nt\nfront and rear vertical suspension. The model also includes body pitch and\nbounce degrees of freedom. The demo " 73 | "provides a description of the model to\nshow how simulation can be used for investigating ride characteristics. \nIn" 74 | " conjunction with a powertrain simulation, the model could\ninvestigate longitudinal shuffle resulting from changes " 75 | "in throttle setting.\n" 76 | SavedCharacterEncoding "US-ASCII" 77 | SaveDefaultBlockParams on 78 | ScopeRefreshTime 0.035000 79 | OverrideScopeRefreshTime on 80 | DisableAllScopes off 81 | DataTypeOverride "UseLocalSettings" 82 | MinMaxOverflowLogging "UseLocalSettings" 83 | MinMaxOverflowArchiveMode "Overwrite" 84 | StopFcn "if exist('sldemo_suspn_output')\nsldemo_suspgraph\nend" 85 | Created "Wed Aug 19 16:25:10 1998" 86 | Creator "The MathWorks Inc." 87 | UpdateHistory "UpdateHistoryNever" 88 | ModifiedByFormat "%" 89 | LastModifiedBy "admin" 90 | ModifiedDateFormat "8/20/97" 91 | LastModifiedDate "8/20/97" 92 | RTWModifiedTimeStamp 0 93 | ModelVersionFormat "1.%" 94 | ConfigurationManager "none" 95 | SampleTimeColors off 96 | SampleTimeAnnotations off 97 | LibraryLinkDisplay "all" 98 | WideLines on 99 | ShowLineDimensions off 100 | ShowPortDataTypes off 101 | ShowLoopsOnError on 102 | IgnoreBidirectionalLines off 103 | ShowStorageClass off 104 | ShowTestPointIcons on 105 | ShowSignalResolutionIcons on 106 | ShowViewerIcons on 107 | SortedOrder off 108 | ExecutionContextIcon off 109 | ShowLinearizationAnnotations on 110 | BlockNameDataTip off 111 | BlockParametersDataTip on 112 | BlockDescriptionStringDataTip off 113 | ToolBar on 114 | StatusBar on 115 | BrowserShowLibraryLinks off 116 | BrowserLookUnderMasks off 117 | SimulationMode "normal" 118 | LinearizationMsg "none" 119 | Profile off 120 | ParamWorkspaceSource "MATLABWorkspace" 121 | AccelSystemTargetFile "accel.tlc" 122 | AccelTemplateMakefile "accel_default_tmf" 123 | AccelMakeCommand "make_rtw" 124 | TryForcingSFcnDF off 125 | RecordCoverage off 126 | CovPath "/" 127 | CovSaveName "covdata" 128 | CovMetricSettings "dw" 129 | CovNameIncrementing off 130 | CovHtmlReporting on 131 | covSaveCumulativeToWorkspaceVar on 132 | CovSaveSingleToWorkspaceVar on 133 | CovCumulativeVarName "covCumulativeData" 134 | CovCumulativeReport off 135 | CovReportOnPause on 136 | CovModelRefEnable "Off" 137 | ExtModeBatchMode off 138 | ExtModeEnableFloating on 139 | ExtModeTrigType "manual" 140 | ExtModeTrigMode "oneshot" 141 | ExtModeTrigPort "1" 142 | ExtModeTrigElement "any" 143 | ExtModeTrigDuration 1000 144 | ExtModeTrigDurationFloating "auto" 145 | ExtModeTrigHoldOff 0 146 | ExtModeTrigDelay 0 147 | ExtModeTrigDirection "rising" 148 | ExtModeTrigLevel 0 149 | ExtModeArchiveMode "off" 150 | ExtModeAutoIncOneShot off 151 | ExtModeIncDirWhenArm off 152 | ExtModeAddSuffixToVar off 153 | ExtModeWriteAllDataToWs off 154 | ExtModeArmWhenConnect off 155 | ExtModeSkipDownloadWhenConnect off 156 | ExtModeLogAll on 157 | ExtModeAutoUpdateStatusClock off 158 | BufferReuse on 159 | ShowModelReferenceBlockVersion off 160 | ShowModelReferenceBlockIO off 161 | Array { 162 | Type "Handle" 163 | Dimension 1 164 | Simulink.ConfigSet { 165 | $ObjectID 1 166 | Version "1.5.1" 167 | Array { 168 | Type "Handle" 169 | Dimension 8 170 | Simulink.SolverCC { 171 | $ObjectID 2 172 | Version "1.5.1" 173 | StartTime "0.0" 174 | StopTime "10" 175 | AbsTol "1e-6" 176 | FixedStep "auto" 177 | InitialStep "auto" 178 | MaxNumMinSteps "-1" 179 | MaxOrder 5 180 | ZcThreshold "auto" 181 | ConsecutiveZCsStepRelTol "10*128*eps" 182 | MaxConsecutiveZCs "1000" 183 | ExtrapolationOrder 4 184 | NumberNewtonIterations 1 185 | MaxStep "0.01" 186 | MinStep "auto" 187 | MaxConsecutiveMinStep "1" 188 | RelTol "1e-3" 189 | SolverMode "SingleTasking" 190 | Solver "ode45" 191 | SolverName "ode45" 192 | ShapePreserveControl "DisableAll" 193 | ZeroCrossControl "UseLocalSettings" 194 | ZeroCrossAlgorithm "Nonadaptive" 195 | AlgebraicLoopSolver "TrustRegion" 196 | SolverResetMethod "Fast" 197 | PositivePriorityOrder off 198 | AutoInsertRateTranBlk off 199 | SampleTimeConstraint "Unconstrained" 200 | InsertRTBMode "Whenever possible" 201 | SignalSizeVariationType "Allow only fixed size" 202 | } 203 | Simulink.DataIOCC { 204 | $ObjectID 3 205 | Version "1.5.1" 206 | Decimation "1" 207 | ExternalInput "[t, u]" 208 | FinalStateName "xFinal" 209 | InitialState "x0" 210 | LimitDataPoints off 211 | MaxDataPoints "1000" 212 | LoadExternalInput off 213 | LoadInitialState off 214 | SaveFinalState off 215 | SaveFormat "StructureWithTime" 216 | SaveOutput off 217 | SaveState off 218 | SignalLogging on 219 | InspectSignalLogs off 220 | SaveTime off 221 | StateSaveName "x" 222 | TimeSaveName "t" 223 | OutputSaveName "yout" 224 | SignalLoggingName "sldemo_suspn_output" 225 | OutputOption "RefineOutputTimes" 226 | OutputTimes "[]" 227 | Refine "1" 228 | } 229 | Simulink.OptimizationCC { 230 | $ObjectID 4 231 | Version "1.5.1" 232 | Array { 233 | Type "Cell" 234 | Dimension 4 235 | Cell "ZeroExternalMemoryAtStartup" 236 | Cell "ZeroInternalMemoryAtStartup" 237 | Cell "NoFixptDivByZeroProtection" 238 | Cell "OptimizeModelRefInitCode" 239 | PropName "DisabledProps" 240 | } 241 | BlockReduction on 242 | BooleanDataType off 243 | ConditionallyExecuteInputs on 244 | InlineParams off 245 | InlineInvariantSignals on 246 | OptimizeBlockIOStorage on 247 | BufferReuse on 248 | EnhancedBackFolding off 249 | EnforceIntegerDowncast on 250 | ExpressionFolding on 251 | EnableMemcpy on 252 | MemcpyThreshold 64 253 | ExpressionDepthLimit 2147483647 254 | FoldNonRolledExpr on 255 | LocalBlockOutputs on 256 | RollThreshold 5 257 | SystemCodeInlineAuto off 258 | StateBitsets off 259 | DataBitsets off 260 | UseTempVars off 261 | ZeroExternalMemoryAtStartup on 262 | ZeroInternalMemoryAtStartup on 263 | InitFltsAndDblsToZero on 264 | NoFixptDivByZeroProtection off 265 | EfficientFloat2IntCast off 266 | EfficientMapNaN2IntZero on 267 | OptimizeModelRefInitCode off 268 | LifeSpan "inf" 269 | BufferReusableBoundary off 270 | SimCompilerOptimization "Off" 271 | AccelVerboseBuild off 272 | } 273 | Simulink.DebuggingCC { 274 | $ObjectID 5 275 | Version "1.5.1" 276 | RTPrefix "error" 277 | ConsistencyChecking "none" 278 | ArrayBoundsChecking "none" 279 | SignalInfNanChecking "none" 280 | SignalRangeChecking "none" 281 | ReadBeforeWriteMsg "UseLocalSettings" 282 | WriteAfterWriteMsg "UseLocalSettings" 283 | WriteAfterReadMsg "UseLocalSettings" 284 | AlgebraicLoopMsg "warning" 285 | ArtificialAlgebraicLoopMsg "warning" 286 | SaveWithDisabledLinksMsg "warning" 287 | SaveWithParameterizedLinksMsg "none" 288 | CheckSSInitialOutputMsg on 289 | UnderspecifiedInitializationDetection "Classic" 290 | MergeDetectMultiDrivingBlocksExec "none" 291 | CheckExecutionContextPreStartOutputMsg off 292 | CheckExecutionContextRuntimeOutputMsg off 293 | SignalResolutionControl "TryResolveAllWithWarning" 294 | BlockPriorityViolationMsg "warning" 295 | MinStepSizeMsg "warning" 296 | TimeAdjustmentMsg "none" 297 | MaxConsecutiveZCsMsg "error" 298 | SolverPrmCheckMsg "none" 299 | InheritedTsInSrcMsg "warning" 300 | DiscreteInheritContinuousMsg "warning" 301 | MultiTaskDSMMsg "warning" 302 | MultiTaskCondExecSysMsg "error" 303 | MultiTaskRateTransMsg "error" 304 | SingleTaskRateTransMsg "none" 305 | TasksWithSamePriorityMsg "warning" 306 | SigSpecEnsureSampleTimeMsg "none" 307 | CheckMatrixSingularityMsg "none" 308 | IntegerOverflowMsg "none" 309 | Int32ToFloatConvMsg "warning" 310 | ParameterDowncastMsg "error" 311 | ParameterOverflowMsg "error" 312 | ParameterUnderflowMsg "none" 313 | ParameterPrecisionLossMsg "warning" 314 | ParameterTunabilityLossMsg "warning" 315 | UnderSpecifiedDataTypeMsg "none" 316 | UnnecessaryDatatypeConvMsg "none" 317 | VectorMatrixConversionMsg "none" 318 | InvalidFcnCallConnMsg "error" 319 | FcnCallInpInsideContextMsg "Use local settings" 320 | SignalLabelMismatchMsg "none" 321 | UnconnectedInputMsg "warning" 322 | UnconnectedOutputMsg "warning" 323 | UnconnectedLineMsg "warning" 324 | SFcnCompatibilityMsg "none" 325 | UniqueDataStoreMsg "none" 326 | BusObjectLabelMismatch "none" 327 | RootOutportRequireBusObject "warning" 328 | AssertControl "UseLocalSettings" 329 | EnableOverflowDetection off 330 | ModelReferenceIOMsg "none" 331 | ModelReferenceVersionMismatchMessage "none" 332 | ModelReferenceIOMismatchMessage "none" 333 | ModelReferenceCSMismatchMessage "none" 334 | UnknownTsInhSupMsg "warning" 335 | ModelReferenceDataLoggingMessage "warning" 336 | ModelReferenceSymbolNameMessage "warning" 337 | ModelReferenceExtraNoncontSigs "error" 338 | StateNameClashWarn "warning" 339 | StrictBusMsg "ErrorLevel1" 340 | LoggingUnavailableSignals "error" 341 | BlockIODiagnostic "none" 342 | } 343 | Simulink.HardwareCC { 344 | $ObjectID 6 345 | Version "1.5.1" 346 | ProdBitPerChar 8 347 | ProdBitPerShort 16 348 | ProdBitPerInt 32 349 | ProdBitPerLong 32 350 | ProdIntDivRoundTo "Undefined" 351 | ProdEndianess "Unspecified" 352 | ProdWordSize 32 353 | ProdShiftRightIntArith on 354 | ProdHWDeviceType "32-bit Generic" 355 | TargetBitPerChar 8 356 | TargetBitPerShort 16 357 | TargetBitPerInt 32 358 | TargetBitPerLong 32 359 | TargetShiftRightIntArith on 360 | TargetIntDivRoundTo "Undefined" 361 | TargetEndianess "Unspecified" 362 | TargetWordSize 32 363 | TargetTypeEmulationWarnSuppressLevel 0 364 | TargetPreprocMaxBitsSint 32 365 | TargetPreprocMaxBitsUint 32 366 | TargetHWDeviceType "Specified" 367 | TargetUnknown off 368 | ProdEqTarget on 369 | } 370 | Simulink.ModelReferenceCC { 371 | $ObjectID 7 372 | Version "1.5.1" 373 | UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" 374 | CheckModelReferenceTargetMessage "error" 375 | ModelReferenceNumInstancesAllowed "Multi" 376 | ModelReferencePassRootInputsByReference on 377 | ModelReferenceMinAlgLoopOccurrences off 378 | } 379 | Simulink.SFSimCC { 380 | $ObjectID 8 381 | Version "1.5.1" 382 | SFSimEnableDebug on 383 | SFSimOverflowDetection on 384 | SFSimEcho on 385 | SimUseLocalCustomCode off 386 | SimBuildMode "sf_incremental_build" 387 | } 388 | Simulink.RTWCC { 389 | $BackupClass "Simulink.RTWCC" 390 | $ObjectID 9 391 | Version "1.5.1" 392 | Array { 393 | Type "Cell" 394 | Dimension 1 395 | Cell "IncludeHyperlinkInReport" 396 | PropName "DisabledProps" 397 | } 398 | SystemTargetFile "grt.tlc" 399 | GenCodeOnly off 400 | MakeCommand "make_rtw" 401 | GenerateMakefile on 402 | TemplateMakefile "grt_default_tmf" 403 | Description "Generic Real-Time Target" 404 | GenerateReport off 405 | SaveLog off 406 | RTWVerbose on 407 | RetainRTWFile off 408 | ProfileTLC off 409 | TLCDebug off 410 | TLCCoverage off 411 | TLCAssert off 412 | ProcessScriptMode "Default" 413 | ConfigurationMode "Optimized" 414 | ConfigAtBuild off 415 | RTWUseLocalCustomCode off 416 | RTWUseSimCustomCode off 417 | IncludeHyperlinkInReport off 418 | LaunchReport off 419 | TargetLang "C" 420 | IncludeBusHierarchyInRTWFileBlockHierarchyMap off 421 | IncludeERTFirstTime on 422 | GenerateTraceInfo off 423 | GenerateTraceReport off 424 | GenerateTraceReportSl off 425 | GenerateTraceReportSf off 426 | GenerateTraceReportEml off 427 | GenerateCodeInfo off 428 | RTWCompilerOptimization "Off" 429 | Array { 430 | Type "Handle" 431 | Dimension 2 432 | Simulink.CodeAppCC { 433 | $ObjectID 10 434 | Version "1.5.1" 435 | Array { 436 | Type "Cell" 437 | Dimension 9 438 | Cell "IgnoreCustomStorageClasses" 439 | Cell "InsertBlockDesc" 440 | Cell "SFDataObjDesc" 441 | Cell "SimulinkDataObjDesc" 442 | Cell "DefineNamingRule" 443 | Cell "SignalNamingRule" 444 | Cell "ParamNamingRule" 445 | Cell "InlinedPrmAccess" 446 | Cell "CustomSymbolStr" 447 | PropName "DisabledProps" 448 | } 449 | ForceParamTrailComments off 450 | GenerateComments on 451 | IgnoreCustomStorageClasses on 452 | IgnoreTestpoints off 453 | IncHierarchyInIds off 454 | MaxIdLength 31 455 | PreserveName off 456 | PreserveNameWithParent off 457 | ShowEliminatedStatement off 458 | IncAutoGenComments off 459 | SimulinkDataObjDesc off 460 | SFDataObjDesc off 461 | IncDataTypeInIds off 462 | MangleLength 1 463 | CustomSymbolStrGlobalVar "$R$N$M" 464 | CustomSymbolStrType "$N$R$M" 465 | CustomSymbolStrField "$N$M" 466 | CustomSymbolStrFcn "$R$N$M$F" 467 | CustomSymbolStrBlkIO "rtb_$N$M" 468 | CustomSymbolStrTmpVar "$N$M" 469 | CustomSymbolStrMacro "$R$N$M" 470 | DefineNamingRule "None" 471 | ParamNamingRule "None" 472 | SignalNamingRule "None" 473 | InsertBlockDesc off 474 | SimulinkBlockComments on 475 | EnableCustomComments off 476 | InlinedPrmAccess "Literals" 477 | ReqsInCode off 478 | UseSimReservedNames off 479 | } 480 | Simulink.GRTTargetCC { 481 | $BackupClass "Simulink.TargetCC" 482 | $ObjectID 11 483 | Version "1.5.1" 484 | Array { 485 | Type "Cell" 486 | Dimension 12 487 | Cell "IncludeMdlTerminateFcn" 488 | Cell "CombineOutputUpdateFcns" 489 | Cell "SuppressErrorStatus" 490 | Cell "ERTCustomFileBanners" 491 | Cell "GenerateSampleERTMain" 492 | Cell "MultiInstanceERTCode" 493 | Cell "PurelyIntegerCode" 494 | Cell "SupportNonFinite" 495 | Cell "SupportComplex" 496 | Cell "SupportAbsoluteTime" 497 | Cell "SupportContinuousTime" 498 | Cell "SupportNonInlinedSFcns" 499 | PropName "DisabledProps" 500 | } 501 | TargetFcnLib "ansi_tfl_tmw.mat" 502 | TargetLibSuffix "" 503 | TargetPreCompLibLocation "" 504 | TargetFunctionLibrary "ANSI_C" 505 | UtilityFuncGeneration "Auto" 506 | ERTMultiwordTypeDef "System defined" 507 | ERTMultiwordLength 256 508 | MultiwordLength 2048 509 | GenerateFullHeader on 510 | GenerateSampleERTMain off 511 | GenerateTestInterfaces off 512 | IsPILTarget off 513 | ModelReferenceCompliant on 514 | CompOptLevelCompliant on 515 | IncludeMdlTerminateFcn on 516 | CombineOutputUpdateFcns off 517 | SuppressErrorStatus off 518 | ERTFirstTimeCompliant off 519 | IncludeFileDelimiter "Auto" 520 | ERTCustomFileBanners off 521 | SupportAbsoluteTime on 522 | LogVarNameModifier "rt_" 523 | MatFileLogging on 524 | MultiInstanceERTCode off 525 | SupportNonFinite on 526 | SupportComplex on 527 | PurelyIntegerCode off 528 | SupportContinuousTime on 529 | SupportNonInlinedSFcns on 530 | EnableShiftOperators on 531 | ParenthesesLevel "Nominal" 532 | PortableWordSizes off 533 | ModelStepFunctionPrototypeControlCompliant off 534 | CPPClassGenCompliant off 535 | AutosarCompliant off 536 | UseMalloc off 537 | ExtMode off 538 | ExtModeStaticAlloc off 539 | ExtModeTesting off 540 | ExtModeStaticAllocSize 1000000 541 | ExtModeTransport 0 542 | ExtModeMexFile "ext_comm" 543 | ExtModeIntrfLevel "Level1" 544 | RTWCAPISignals off 545 | RTWCAPIParams off 546 | RTWCAPIStates off 547 | GenerateASAP2 off 548 | } 549 | PropName "Components" 550 | } 551 | } 552 | PropName "Components" 553 | } 554 | Name "Configuration" 555 | CurrentDlgPage "Data Import//Export" 556 | ConfigPrmDlgPosition " [ 200, 197, 1080, 827 ] " 557 | } 558 | PropName "ConfigurationSets" 559 | } 560 | Simulink.ConfigSet { 561 | $PropName "ActiveConfigurationSet" 562 | $ObjectID 1 563 | } 564 | WSDataSource "M-Code" 565 | WSMCode "sldemo_suspdat; %load data from m-file" 566 | BlockDefaults { 567 | Orientation "right" 568 | ForegroundColor "black" 569 | BackgroundColor "white" 570 | DropShadow off 571 | NamePlacement "normal" 572 | FontName "Helvetica" 573 | FontSize 10 574 | FontWeight "normal" 575 | FontAngle "normal" 576 | ShowName on 577 | } 578 | AnnotationDefaults { 579 | HorizontalAlignment "center" 580 | VerticalAlignment "middle" 581 | ForegroundColor "black" 582 | BackgroundColor "white" 583 | DropShadow off 584 | FontName "Helvetica" 585 | FontSize 10 586 | FontWeight "normal" 587 | FontAngle "normal" 588 | UseDisplayTextAsClickCallback off 589 | } 590 | LineDefaults { 591 | FontName "Helvetica" 592 | FontSize 10 593 | FontWeight "normal" 594 | FontAngle "normal" 595 | } 596 | BlockParameterDefaults { 597 | Block { 598 | BlockType Constant 599 | Value "1" 600 | VectorParams1D on 601 | SamplingMode "Sample based" 602 | OutMin "[]" 603 | OutMax "[]" 604 | OutDataTypeMode "Inherit from 'Constant value'" 605 | OutDataType "fixdt(1,16,0)" 606 | ConRadixGroup "Use specified scaling" 607 | OutScaling "[]" 608 | OutDataTypeStr "Inherit: Inherit from 'Constant value'" 609 | LockScale off 610 | SampleTime "inf" 611 | FramePeriod "inf" 612 | } 613 | Block { 614 | BlockType Demux 615 | Outputs "4" 616 | DisplayOption "none" 617 | BusSelectionMode off 618 | } 619 | Block { 620 | BlockType Gain 621 | Gain "1" 622 | Multiplication "Element-wise(K.*u)" 623 | ParamMin "[]" 624 | ParamMax "[]" 625 | ParameterDataTypeMode "Same as input" 626 | ParameterDataType "fixdt(1,16,0)" 627 | ParameterScalingMode "Best Precision: Matrix-wise" 628 | ParameterScaling "[]" 629 | ParamDataTypeStr "Inherit: Same as input" 630 | OutMin "[]" 631 | OutMax "[]" 632 | OutDataTypeMode "Same as input" 633 | OutDataType "fixdt(1,16,0)" 634 | OutScaling "[]" 635 | OutDataTypeStr "Inherit: Same as input" 636 | LockScale off 637 | RndMeth "Floor" 638 | SaturateOnIntegerOverflow on 639 | SampleTime "-1" 640 | } 641 | Block { 642 | BlockType Inport 643 | Port "1" 644 | UseBusObject off 645 | BusObject "BusObject" 646 | BusOutputAsStruct off 647 | PortDimensions "-1" 648 | SampleTime "-1" 649 | OutMin "[]" 650 | OutMax "[]" 651 | DataType "auto" 652 | OutDataType "fixdt(1,16,0)" 653 | OutScaling "[]" 654 | OutDataTypeStr "Inherit: auto" 655 | LockScale off 656 | SignalType "auto" 657 | SamplingMode "auto" 658 | LatchByDelayingOutsideSignal off 659 | LatchByCopyingInsideSignal off 660 | Interpolate on 661 | } 662 | Block { 663 | BlockType Integrator 664 | ExternalReset "none" 665 | InitialConditionSource "internal" 666 | InitialCondition "0" 667 | LimitOutput off 668 | UpperSaturationLimit "inf" 669 | LowerSaturationLimit "-inf" 670 | ShowSaturationPort off 671 | ShowStatePort off 672 | AbsoluteTolerance "auto" 673 | IgnoreLimit off 674 | ZeroCross on 675 | ContinuousStateAttributes "''" 676 | } 677 | Block { 678 | BlockType Mux 679 | Inputs "4" 680 | DisplayOption "none" 681 | UseBusObject off 682 | BusObject "BusObject" 683 | NonVirtualBus off 684 | } 685 | Block { 686 | BlockType Outport 687 | Port "1" 688 | UseBusObject off 689 | BusObject "BusObject" 690 | BusOutputAsStruct off 691 | PortDimensions "-1" 692 | SampleTime "-1" 693 | OutMin "[]" 694 | OutMax "[]" 695 | DataType "auto" 696 | OutDataType "fixdt(1,16,0)" 697 | OutScaling "[]" 698 | OutDataTypeStr "Inherit: auto" 699 | LockScale off 700 | SignalType "auto" 701 | SamplingMode "auto" 702 | SourceOfInitialOutputValue "Dialog" 703 | OutputWhenDisabled "held" 704 | InitialOutput "[]" 705 | } 706 | Block { 707 | BlockType Step 708 | Time "1" 709 | Before "0" 710 | After "1" 711 | SampleTime "-1" 712 | VectorParams1D on 713 | ZeroCross on 714 | } 715 | Block { 716 | BlockType SubSystem 717 | ShowPortLabels "FromPortIcon" 718 | Permissions "ReadWrite" 719 | PermitHierarchicalResolution "All" 720 | TreatAsAtomicUnit off 721 | CheckFcnCallInpInsideContextMsg off 722 | SystemSampleTime "-1" 723 | RTWFcnNameOpts "Auto" 724 | RTWFileNameOpts "Auto" 725 | RTWMemSecFuncInitTerm "Inherit from model" 726 | RTWMemSecFuncExecute "Inherit from model" 727 | RTWMemSecDataConstants "Inherit from model" 728 | RTWMemSecDataInternal "Inherit from model" 729 | RTWMemSecDataParameters "Inherit from model" 730 | SimViewingDevice off 731 | DataTypeOverride "UseLocalSettings" 732 | MinMaxOverflowLogging "UseLocalSettings" 733 | } 734 | Block { 735 | BlockType Sum 736 | IconShape "rectangular" 737 | Inputs "++" 738 | CollapseMode "All dimensions" 739 | CollapseDim "1" 740 | InputSameDT on 741 | AccumDataTypeStr "Inherit: Inherit via internal rule" 742 | OutMin "[]" 743 | OutMax "[]" 744 | OutDataTypeMode "Same as first input" 745 | OutDataType "fixdt(1,16,0)" 746 | OutScaling "[]" 747 | OutDataTypeStr "Inherit: Same as first input" 748 | LockScale off 749 | RndMeth "Floor" 750 | SaturateOnIntegerOverflow on 751 | SampleTime "-1" 752 | } 753 | } 754 | System { 755 | Name "sldemo_suspn" 756 | Location [228, 176, 1038, 658] 757 | Open on 758 | ModelBrowserVisibility off 759 | ModelBrowserWidth 200 760 | ScreenColor "white" 761 | PaperOrientation "portrait" 762 | PaperPositionMode "auto" 763 | PaperType "usletter" 764 | PaperUnits "inches" 765 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 766 | TiledPageScale 1 767 | ShowPageBoundaries off 768 | ZoomFactor "100" 769 | ReportName "simulink-default.rpt" 770 | Block { 771 | BlockType Gain 772 | Name "1/(Body Inertia)" 773 | Position [340, 74, 400, 106] 774 | Gain "1/Iyy" 775 | ParameterDataType "sfix(16)" 776 | ParameterScaling "2^0" 777 | OutDataType "sfix(16)" 778 | OutScaling "2^0" 779 | } 780 | Block { 781 | BlockType Gain 782 | Name "1/(Body Mass)" 783 | Position [280, 308, 340, 342] 784 | Gain "1/Mb" 785 | ParameterDataType "sfix(16)" 786 | ParameterScaling "2^0" 787 | OutDataType "sfix(16)" 788 | OutScaling "2^0" 789 | } 790 | Block { 791 | BlockType SubSystem 792 | Name "Front Suspension" 793 | Ports [1, 2] 794 | Position [80, 175, 180, 270] 795 | BackgroundColor "cyan" 796 | ShowPortLabels "none" 797 | MinAlgLoopOccurrences off 798 | PropExecContextOutsideSubsystem off 799 | RTWSystemCode "Auto" 800 | FunctionWithSeparateData off 801 | Opaque off 802 | RequestExecContextInheritance off 803 | MaskHideContents off 804 | MaskType "half-car suspension" 805 | MaskDescription "Half-Car Suspension\nThe spring and damping rates for an individual wheel are entered bel" 806 | "ow. Their combined effect as applied to two wheels at the specified distance from the center of mass is compute" 807 | "d. The distance should be specified as positive if the subsystem is oriented such that increasing z corresponds" 808 | " to increasing theta, negative otherwise." 809 | MaskHelp "See \"Using Simulink and Stateflow in Automotive Applications\" for a mathematical derivation o" 810 | "f the subsystem operation. Contact your MathWorks distributor to obtain a copy. " 811 | MaskPromptString "Stiffness = spring rate:|Damping rate:|Moment arm:" 812 | MaskStyleString "edit,edit,edit" 813 | MaskTunableValueString "on,on,on" 814 | MaskCallbackString "||" 815 | MaskEnableString "on,on,on" 816 | MaskVisibilityString "on,on,on" 817 | MaskToolTipString "on,on,on" 818 | MaskVarAliasString ",," 819 | MaskVariables "K=@1;C=@2;L=@3;" 820 | MaskDisplay "plot(-1, 0, 13, 12, [1 12], [11 11], [1 5], [2 2], [1 2], [4.5 5], [2 0], [5 6], [0 2], [6 7]" 821 | ", [2 0], [7 8], [0 1], [8 8.5], [1 1], [8.5 11], [1 1], [2 4.5], [5 5], [2 5], [4 6], [5 5], [4 4], [5 8], [6 6]" 822 | ", [5 8], [4 6], [6.5 6.5], [5 5], [6.5 11], [0 1], [1 2], [2 3], [1 2], [4 5], [1 2])" 823 | MaskIconFrame on 824 | MaskIconOpaque on 825 | MaskIconRotate "port" 826 | MaskIconUnits "autoscale" 827 | MaskValueString "kf|cf|-Lf" 828 | MaskTabNameString ",," 829 | Port { 830 | PortNumber 1 831 | Name "-Front Pitch Moment" 832 | RTWStorageClass "Auto" 833 | DataLoggingNameMode "SignalName" 834 | } 835 | Port { 836 | PortNumber 2 837 | Name "FrontForce" 838 | TestPoint on 839 | RTWStorageClass "Auto" 840 | DataLogging on 841 | DataLoggingNameMode "SignalName" 842 | } 843 | System { 844 | Name "Front Suspension" 845 | Location [107, 534, 779, 824] 846 | Open off 847 | ModelBrowserVisibility off 848 | ModelBrowserWidth 200 849 | ScreenColor "white" 850 | PaperOrientation "landscape" 851 | PaperPositionMode "auto" 852 | PaperType "usletter" 853 | PaperUnits "inches" 854 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 855 | TiledPageScale 1 856 | ShowPageBoundaries off 857 | ZoomFactor "100" 858 | Block { 859 | BlockType Inport 860 | Name "THETA\nTHETAdot\nZ\nZdot" 861 | Position [35, 125, 55, 145] 862 | IconDisplay "Port number" 863 | OutDataType "sfix(16)" 864 | OutScaling "2^0" 865 | } 866 | Block { 867 | BlockType Demux 868 | Name "Demux" 869 | Ports [1, 4] 870 | Position [100, 13, 110, 257] 871 | BackgroundColor "black" 872 | ShowName off 873 | } 874 | Block { 875 | BlockType Sum 876 | Name "Fz" 877 | Ports [2, 1] 878 | Position [450, 16, 465, 169] 879 | Inputs "--" 880 | OutDataType "sfix(16)" 881 | OutScaling "2^0" 882 | } 883 | Block { 884 | BlockType Gain 885 | Name "MomentArm1" 886 | Position [155, 25, 215, 65] 887 | Gain "L" 888 | ParameterDataType "sfix(16)" 889 | ParameterScaling "2^0" 890 | OutDataType "sfix(16)" 891 | OutScaling "2^0" 892 | } 893 | Block { 894 | BlockType Gain 895 | Name "MomentArm2" 896 | Position [155, 85, 215, 125] 897 | Gain "L" 898 | ParameterDataType "sfix(16)" 899 | ParameterScaling "2^0" 900 | OutDataType "sfix(16)" 901 | OutScaling "2^0" 902 | } 903 | Block { 904 | BlockType Gain 905 | Name "MomentArm3" 906 | Position [510, 18, 555, 52] 907 | Gain "L" 908 | ParameterDataType "sfix(16)" 909 | ParameterScaling "2^0" 910 | OutDataType "sfix(16)" 911 | OutScaling "2^0" 912 | } 913 | Block { 914 | BlockType Sum 915 | Name "Sum2" 916 | Ports [2, 1] 917 | Position [290, 84, 305, 171] 918 | ShowName off 919 | OutDataType "sfix(16)" 920 | OutScaling "2^0" 921 | } 922 | Block { 923 | BlockType Sum 924 | Name "Sum3" 925 | Ports [2, 1] 926 | Position [290, 35, 305, 75] 927 | ShowName off 928 | OutDataType "sfix(16)" 929 | OutScaling "2^0" 930 | } 931 | Block { 932 | BlockType Gain 933 | Name "damping" 934 | Position [350, 106, 410, 154] 935 | Gain "2*C" 936 | ParameterDataType "sfix(16)" 937 | ParameterScaling "2^0" 938 | OutDataType "sfix(16)" 939 | OutScaling "2^0" 940 | } 941 | Block { 942 | BlockType Gain 943 | Name "stiffness" 944 | Position [350, 33, 410, 77] 945 | Gain "2*K" 946 | ParameterDataType "sfix(16)" 947 | ParameterScaling "2^0" 948 | OutDataType "sfix(16)" 949 | OutScaling "2^0" 950 | } 951 | Block { 952 | BlockType Outport 953 | Name "pitch\nTorque" 954 | Position [605, 25, 625, 45] 955 | IconDisplay "Port number" 956 | OutDataType "sfix(16)" 957 | OutScaling "2^0" 958 | } 959 | Block { 960 | BlockType Outport 961 | Name "Vertical\nForce" 962 | Position [605, 85, 625, 105] 963 | Port "2" 964 | IconDisplay "Port number" 965 | OutDataType "sfix(16)" 966 | OutScaling "2^0" 967 | } 968 | Line { 969 | SrcBlock "Sum2" 970 | SrcPort 1 971 | DstBlock "damping" 972 | DstPort 1 973 | } 974 | Line { 975 | SrcBlock "Sum3" 976 | SrcPort 1 977 | DstBlock "stiffness" 978 | DstPort 1 979 | } 980 | Line { 981 | SrcBlock "THETA\nTHETAdot\nZ\nZdot" 982 | SrcPort 1 983 | DstBlock "Demux" 984 | DstPort 1 985 | } 986 | Line { 987 | SrcBlock "damping" 988 | SrcPort 1 989 | DstBlock "Fz" 990 | DstPort 2 991 | } 992 | Line { 993 | SrcBlock "stiffness" 994 | SrcPort 1 995 | DstBlock "Fz" 996 | DstPort 1 997 | } 998 | Line { 999 | SrcBlock "Fz" 1000 | SrcPort 1 1001 | Points [20, 0] 1002 | Branch { 1003 | DstBlock "Vertical\nForce" 1004 | DstPort 1 1005 | } 1006 | Branch { 1007 | Points [0, -60] 1008 | DstBlock "MomentArm3" 1009 | DstPort 1 1010 | } 1011 | } 1012 | Line { 1013 | SrcBlock "MomentArm3" 1014 | SrcPort 1 1015 | DstBlock "pitch\nTorque" 1016 | DstPort 1 1017 | } 1018 | Line { 1019 | SrcBlock "Demux" 1020 | SrcPort 1 1021 | DstBlock "MomentArm1" 1022 | DstPort 1 1023 | } 1024 | Line { 1025 | SrcBlock "Demux" 1026 | SrcPort 2 1027 | DstBlock "MomentArm2" 1028 | DstPort 1 1029 | } 1030 | Line { 1031 | SrcBlock "Demux" 1032 | SrcPort 3 1033 | Points [125, 0; 0, -100] 1034 | DstBlock "Sum3" 1035 | DstPort 2 1036 | } 1037 | Line { 1038 | SrcBlock "MomentArm1" 1039 | SrcPort 1 1040 | DstBlock "Sum3" 1041 | DstPort 1 1042 | } 1043 | Line { 1044 | SrcBlock "MomentArm2" 1045 | SrcPort 1 1046 | DstBlock "Sum2" 1047 | DstPort 1 1048 | } 1049 | Line { 1050 | SrcBlock "Demux" 1051 | SrcPort 4 1052 | Points [145, 0; 0, -75] 1053 | DstBlock "Sum2" 1054 | DstPort 2 1055 | } 1056 | Annotation { 1057 | Name "Two DOF Spring/Damper Model" 1058 | Position [337, 264] 1059 | FontSize 14 1060 | FontWeight "bold" 1061 | } 1062 | } 1063 | } 1064 | Block { 1065 | BlockType SubSystem 1066 | Name "More Info1" 1067 | Ports [] 1068 | Position [20, 15, 44, 38] 1069 | DropShadow on 1070 | ShowName off 1071 | OpenFcn "showdemo(bdroot(gcb))" 1072 | MinAlgLoopOccurrences off 1073 | PropExecContextOutsideSubsystem off 1074 | RTWSystemCode "Auto" 1075 | FunctionWithSeparateData off 1076 | Opaque off 1077 | RequestExecContextInheritance off 1078 | MaskHideContents off 1079 | MaskDisplay "disp('?')" 1080 | MaskIconFrame on 1081 | MaskIconOpaque on 1082 | MaskIconRotate "none" 1083 | MaskIconUnits "autoscale" 1084 | System { 1085 | Name "More Info1" 1086 | Location [98, 267, 744, 691] 1087 | Open off 1088 | ModelBrowserVisibility off 1089 | ModelBrowserWidth 200 1090 | ScreenColor "white" 1091 | PaperOrientation "landscape" 1092 | PaperPositionMode "auto" 1093 | PaperType "usletter" 1094 | PaperUnits "inches" 1095 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 1096 | TiledPageScale 1 1097 | ShowPageBoundaries off 1098 | ZoomFactor "100" 1099 | } 1100 | } 1101 | Block { 1102 | BlockType Mux 1103 | Name "Mux1" 1104 | Ports [2, 1] 1105 | Position [690, 65, 695, 165] 1106 | BackgroundColor "black" 1107 | ShowName off 1108 | Inputs "2" 1109 | DisplayOption "signals" 1110 | } 1111 | Block { 1112 | BlockType Mux 1113 | Name "Mux2" 1114 | Ports [2, 1] 1115 | Position [690, 296, 695, 414] 1116 | BackgroundColor "black" 1117 | ShowName off 1118 | Inputs "2" 1119 | DisplayOption "signals" 1120 | Port { 1121 | PortNumber 1 1122 | PropagatedSignals "Z+h, Zdot" 1123 | ShowPropagatedSignals "on" 1124 | RTWStorageClass "Auto" 1125 | DataLoggingNameMode "SignalName" 1126 | } 1127 | } 1128 | Block { 1129 | BlockType Mux 1130 | Name "Mux3" 1131 | Ports [2, 1] 1132 | Position [745, 175, 750, 275] 1133 | BackgroundColor "black" 1134 | ShowName off 1135 | Inputs "2" 1136 | DisplayOption "signals" 1137 | Port { 1138 | PortNumber 1 1139 | PropagatedSignals "Theta, Thetadot, Z+h, Zdot" 1140 | ShowPropagatedSignals "on" 1141 | RTWStorageClass "Auto" 1142 | DataLoggingNameMode "SignalName" 1143 | } 1144 | } 1145 | Block { 1146 | BlockType Mux 1147 | Name "Mux4" 1148 | Ports [2, 1] 1149 | Position [690, 175, 695, 275] 1150 | Orientation "left" 1151 | BackgroundColor "black" 1152 | ShowName off 1153 | Inputs "2" 1154 | DisplayOption "signals" 1155 | Port { 1156 | PortNumber 1 1157 | PropagatedSignals "Theta, Thetadot, Z+h, Zdot" 1158 | ShowPropagatedSignals "on" 1159 | RTWStorageClass "Auto" 1160 | DataLoggingNameMode "SignalName" 1161 | } 1162 | } 1163 | Block { 1164 | BlockType Step 1165 | Name "Pitch moment \ninduced by \nvehicle acceleration" 1166 | Position [105, 68, 155, 112] 1167 | ForegroundColor "blue" 1168 | Time "3" 1169 | After "100" 1170 | SampleTime "0" 1171 | Port { 1172 | PortNumber 1 1173 | Name "My" 1174 | TestPoint on 1175 | RTWStorageClass "Auto" 1176 | DataLogging on 1177 | DataLoggingNameMode "SignalName" 1178 | } 1179 | } 1180 | Block { 1181 | BlockType SubSystem 1182 | Name "Rear Suspension" 1183 | Ports [1, 2] 1184 | Position [395, 175, 495, 270] 1185 | Orientation "left" 1186 | BackgroundColor "cyan" 1187 | ShowPortLabels "none" 1188 | MinAlgLoopOccurrences off 1189 | PropExecContextOutsideSubsystem off 1190 | RTWSystemCode "Auto" 1191 | FunctionWithSeparateData off 1192 | Opaque off 1193 | RequestExecContextInheritance off 1194 | MaskHideContents off 1195 | MaskType "half-car suspension" 1196 | MaskDescription "Half-Car Suspension\nThe spring and damping rates for an individual wheel are entered bel" 1197 | "ow. Their combined effect as applied to two wheels at the specified distance from the center of mass is compute" 1198 | "d. The distance should be specified as positive if the subsystem is oriented such that increasing z corresponds" 1199 | " to increasing theta, negative otherwise." 1200 | MaskHelp "See \"Using Simulink and Stateflow in Automotive Applications\" for a mathematical derivation o" 1201 | "f the subsystem operation. Contact your MathWorks distributor to obtain a copy. " 1202 | MaskPromptString "Stiffness = spring rate:|Damping rate:|Moment arm:" 1203 | MaskStyleString "edit,edit,edit" 1204 | MaskTunableValueString "on,on,on" 1205 | MaskCallbackString "||" 1206 | MaskEnableString "on,on,on" 1207 | MaskVisibilityString "on,on,on" 1208 | MaskToolTipString "on,on,on" 1209 | MaskVarAliasString ",," 1210 | MaskVariables "K=@1;C=@2;L=@3;" 1211 | MaskDisplay "plot(-1, 0, 13, 12, [1 12], [11 11], [1 5], [2 2], [1 2], [4.5 5], [2 0], [5 6], [0 2], [6 7]" 1212 | ", [2 0], [7 8], [0 1], [8 8.5], [1 1], [8.5 11], [1 1], [2 4.5], [5 5], [2 5], [4 6], [5 5], [4 4], [5 8], [6 6]" 1213 | ", [5 8], [4 6], [6.5 6.5], [5 5], [6.5 11], [0 1], [1 2], [2 3], [1 2], [4 5], [1 2])" 1214 | MaskIconFrame on 1215 | MaskIconOpaque on 1216 | MaskIconRotate "port" 1217 | MaskIconUnits "autoscale" 1218 | MaskValueString "kr|cr|Lr" 1219 | MaskTabNameString ",," 1220 | Port { 1221 | PortNumber 1 1222 | Name "Reart Pitch Moment" 1223 | RTWStorageClass "Auto" 1224 | DataLoggingNameMode "SignalName" 1225 | } 1226 | Port { 1227 | PortNumber 2 1228 | Name "RearForce" 1229 | TestPoint on 1230 | RTWStorageClass "Auto" 1231 | DataLogging on 1232 | DataLoggingNameMode "SignalName" 1233 | } 1234 | System { 1235 | Name "Rear Suspension" 1236 | Location [84, 280, 756, 570] 1237 | Open off 1238 | ModelBrowserVisibility off 1239 | ModelBrowserWidth 200 1240 | ScreenColor "white" 1241 | PaperOrientation "landscape" 1242 | PaperPositionMode "auto" 1243 | PaperType "usletter" 1244 | PaperUnits "inches" 1245 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 1246 | TiledPageScale 1 1247 | ShowPageBoundaries off 1248 | ZoomFactor "100" 1249 | Block { 1250 | BlockType Inport 1251 | Name "THETA\nTHETAdot\nZ\nZdot" 1252 | Position [35, 125, 55, 145] 1253 | IconDisplay "Port number" 1254 | OutDataType "sfix(16)" 1255 | OutScaling "2^0" 1256 | } 1257 | Block { 1258 | BlockType Demux 1259 | Name "Demux" 1260 | Ports [1, 4] 1261 | Position [100, 13, 110, 257] 1262 | BackgroundColor "black" 1263 | ShowName off 1264 | } 1265 | Block { 1266 | BlockType Sum 1267 | Name "Fz" 1268 | Ports [2, 1] 1269 | Position [450, 16, 465, 169] 1270 | Inputs "--" 1271 | OutDataType "sfix(16)" 1272 | OutScaling "2^0" 1273 | } 1274 | Block { 1275 | BlockType Gain 1276 | Name "MomentArm1" 1277 | Position [155, 25, 215, 65] 1278 | Gain "L" 1279 | ParameterDataType "sfix(16)" 1280 | ParameterScaling "2^0" 1281 | OutDataType "sfix(16)" 1282 | OutScaling "2^0" 1283 | } 1284 | Block { 1285 | BlockType Gain 1286 | Name "MomentArm2" 1287 | Position [155, 85, 215, 125] 1288 | Gain "L" 1289 | ParameterDataType "sfix(16)" 1290 | ParameterScaling "2^0" 1291 | OutDataType "sfix(16)" 1292 | OutScaling "2^0" 1293 | } 1294 | Block { 1295 | BlockType Gain 1296 | Name "MomentArm3" 1297 | Position [510, 18, 555, 52] 1298 | Gain "L" 1299 | ParameterDataType "sfix(16)" 1300 | ParameterScaling "2^0" 1301 | OutDataType "sfix(16)" 1302 | OutScaling "2^0" 1303 | } 1304 | Block { 1305 | BlockType Sum 1306 | Name "Sum2" 1307 | Ports [2, 1] 1308 | Position [290, 84, 305, 171] 1309 | ShowName off 1310 | OutDataType "sfix(16)" 1311 | OutScaling "2^0" 1312 | } 1313 | Block { 1314 | BlockType Sum 1315 | Name "Sum3" 1316 | Ports [2, 1] 1317 | Position [290, 35, 305, 75] 1318 | ShowName off 1319 | OutDataType "sfix(16)" 1320 | OutScaling "2^0" 1321 | } 1322 | Block { 1323 | BlockType Gain 1324 | Name "damping" 1325 | Position [350, 106, 410, 154] 1326 | Gain "2*C" 1327 | ParameterDataType "sfix(16)" 1328 | ParameterScaling "2^0" 1329 | OutDataType "sfix(16)" 1330 | OutScaling "2^0" 1331 | } 1332 | Block { 1333 | BlockType Gain 1334 | Name "stiffness" 1335 | Position [350, 33, 410, 77] 1336 | Gain "2*K" 1337 | ParameterDataType "sfix(16)" 1338 | ParameterScaling "2^0" 1339 | OutDataType "sfix(16)" 1340 | OutScaling "2^0" 1341 | } 1342 | Block { 1343 | BlockType Outport 1344 | Name "pitch\nTorque" 1345 | Position [605, 25, 625, 45] 1346 | IconDisplay "Port number" 1347 | OutDataType "sfix(16)" 1348 | OutScaling "2^0" 1349 | } 1350 | Block { 1351 | BlockType Outport 1352 | Name "Vertical\nForce" 1353 | Position [605, 85, 625, 105] 1354 | Port "2" 1355 | IconDisplay "Port number" 1356 | OutDataType "sfix(16)" 1357 | OutScaling "2^0" 1358 | } 1359 | Line { 1360 | SrcBlock "Demux" 1361 | SrcPort 4 1362 | Points [145, 0; 0, -75] 1363 | DstBlock "Sum2" 1364 | DstPort 2 1365 | } 1366 | Line { 1367 | SrcBlock "MomentArm2" 1368 | SrcPort 1 1369 | DstBlock "Sum2" 1370 | DstPort 1 1371 | } 1372 | Line { 1373 | SrcBlock "MomentArm1" 1374 | SrcPort 1 1375 | DstBlock "Sum3" 1376 | DstPort 1 1377 | } 1378 | Line { 1379 | SrcBlock "Demux" 1380 | SrcPort 3 1381 | Points [125, 0; 0, -100] 1382 | DstBlock "Sum3" 1383 | DstPort 2 1384 | } 1385 | Line { 1386 | SrcBlock "Demux" 1387 | SrcPort 2 1388 | DstBlock "MomentArm2" 1389 | DstPort 1 1390 | } 1391 | Line { 1392 | SrcBlock "Demux" 1393 | SrcPort 1 1394 | DstBlock "MomentArm1" 1395 | DstPort 1 1396 | } 1397 | Line { 1398 | SrcBlock "MomentArm3" 1399 | SrcPort 1 1400 | DstBlock "pitch\nTorque" 1401 | DstPort 1 1402 | } 1403 | Line { 1404 | SrcBlock "Fz" 1405 | SrcPort 1 1406 | Points [20, 0] 1407 | Branch { 1408 | Points [0, -60] 1409 | DstBlock "MomentArm3" 1410 | DstPort 1 1411 | } 1412 | Branch { 1413 | DstBlock "Vertical\nForce" 1414 | DstPort 1 1415 | } 1416 | } 1417 | Line { 1418 | SrcBlock "stiffness" 1419 | SrcPort 1 1420 | DstBlock "Fz" 1421 | DstPort 1 1422 | } 1423 | Line { 1424 | SrcBlock "damping" 1425 | SrcPort 1 1426 | DstBlock "Fz" 1427 | DstPort 2 1428 | } 1429 | Line { 1430 | SrcBlock "THETA\nTHETAdot\nZ\nZdot" 1431 | SrcPort 1 1432 | DstBlock "Demux" 1433 | DstPort 1 1434 | } 1435 | Line { 1436 | SrcBlock "Sum3" 1437 | SrcPort 1 1438 | DstBlock "stiffness" 1439 | DstPort 1 1440 | } 1441 | Line { 1442 | SrcBlock "Sum2" 1443 | SrcPort 1 1444 | DstBlock "damping" 1445 | DstPort 1 1446 | } 1447 | Annotation { 1448 | Name "Two DOF Spring/Damper Model" 1449 | Position [337, 264] 1450 | FontSize 14 1451 | FontWeight "bold" 1452 | } 1453 | } 1454 | } 1455 | Block { 1456 | BlockType Step 1457 | Name "Road Height" 1458 | Position [515, 248, 550, 282] 1459 | ForegroundColor "blue" 1460 | Time "7" 1461 | After "0.01" 1462 | SampleTime "0" 1463 | Port { 1464 | PortNumber 1 1465 | Name "h" 1466 | TestPoint on 1467 | RTWStorageClass "Auto" 1468 | DataLogging on 1469 | DataLoggingNameMode "SignalName" 1470 | } 1471 | } 1472 | Block { 1473 | BlockType Sum 1474 | Name "Sum" 1475 | Ports [2, 1] 1476 | Position [600, 290, 620, 310] 1477 | ShowName off 1478 | IconShape "round" 1479 | Inputs "|++" 1480 | InputSameDT off 1481 | OutDataTypeMode "Inherit via internal rule" 1482 | OutDataType "sfix(16)" 1483 | OutScaling "2^0" 1484 | OutDataTypeStr "Inherit: Inherit via internal rule" 1485 | SaturateOnIntegerOverflow off 1486 | Port { 1487 | PortNumber 1 1488 | Name "Z+h" 1489 | RTWStorageClass "Auto" 1490 | DataLoggingNameMode "SignalName" 1491 | } 1492 | } 1493 | Block { 1494 | BlockType Sum 1495 | Name "Sum4" 1496 | Ports [2, 1] 1497 | Position [255, 235, 275, 255] 1498 | Orientation "down" 1499 | NamePlacement "alternate" 1500 | ShowName off 1501 | IconShape "round" 1502 | OutDataType "sfix(16)" 1503 | OutScaling "2^0" 1504 | } 1505 | Block { 1506 | BlockType Sum 1507 | Name "Sum5" 1508 | Ports [2, 1] 1509 | Position [365, 315, 385, 335] 1510 | ShowName off 1511 | IconShape "round" 1512 | Inputs "|++" 1513 | OutDataType "sfix(16)" 1514 | OutScaling "2^0" 1515 | } 1516 | Block { 1517 | BlockType Sum 1518 | Name "Sum6" 1519 | Ports [3, 1] 1520 | Position [285, 75, 315, 105] 1521 | ShowName off 1522 | IconShape "round" 1523 | Inputs "||+++" 1524 | OutDataType "sfix(16)" 1525 | OutScaling "2^0" 1526 | } 1527 | Block { 1528 | BlockType Integrator 1529 | Name "THETA" 1530 | Ports [1, 1] 1531 | Position [590, 72, 610, 108] 1532 | InitialCondition "-8.7e-20" 1533 | Port { 1534 | PortNumber 1 1535 | Name "Theta" 1536 | TestPoint on 1537 | RTWStorageClass "Auto" 1538 | DataLogging on 1539 | DataLoggingNameMode "SignalName" 1540 | } 1541 | } 1542 | Block { 1543 | BlockType Integrator 1544 | Name "THETAdot" 1545 | Ports [1, 1] 1546 | Position [470, 70, 490, 110] 1547 | InitialCondition "8.04e-28" 1548 | Port { 1549 | PortNumber 1 1550 | Name "Thetadot" 1551 | TestPoint on 1552 | RTWStorageClass "Auto" 1553 | DataLogging on 1554 | DataLoggingNameMode "SignalName" 1555 | } 1556 | } 1557 | Block { 1558 | BlockType Integrator 1559 | Name "Z" 1560 | Ports [1, 1] 1561 | Position [525, 309, 545, 341] 1562 | InitialCondition "-0.12" 1563 | Port { 1564 | PortNumber 1 1565 | Name "Z" 1566 | TestPoint on 1567 | RTWStorageClass "Auto" 1568 | DataLogging on 1569 | DataLoggingNameMode "SignalName" 1570 | } 1571 | } 1572 | Block { 1573 | BlockType Integrator 1574 | Name "Zdot" 1575 | Ports [1, 1] 1576 | Position [420, 307, 440, 343] 1577 | Port { 1578 | PortNumber 1 1579 | Name "Zdot" 1580 | TestPoint on 1581 | RTWStorageClass "Auto" 1582 | DataLogging on 1583 | DataLoggingNameMode "SignalName" 1584 | } 1585 | } 1586 | Block { 1587 | BlockType Constant 1588 | Name "acceleration \ndue to gravity" 1589 | Position [280, 363, 315, 387] 1590 | Value "-9.81" 1591 | OutDataType "sfix(16)" 1592 | OutScaling "2^0" 1593 | } 1594 | Line { 1595 | Name "FrontForce" 1596 | Labels [0, 1] 1597 | SrcBlock "Front Suspension" 1598 | SrcPort 2 1599 | DstBlock "Sum4" 1600 | DstPort 1 1601 | } 1602 | Line { 1603 | Name "RearForce" 1604 | Labels [1, 1] 1605 | SrcBlock "Rear Suspension" 1606 | SrcPort 2 1607 | DstBlock "Sum4" 1608 | DstPort 2 1609 | } 1610 | Line { 1611 | SrcBlock "Sum4" 1612 | SrcPort 1 1613 | DstBlock "1/(Body Mass)" 1614 | DstPort 1 1615 | } 1616 | Line { 1617 | Labels [2, 0] 1618 | SrcBlock "Mux1" 1619 | SrcPort 1 1620 | Points [20, 0; 0, 85] 1621 | Branch { 1622 | DstBlock "Mux3" 1623 | DstPort 1 1624 | } 1625 | Branch { 1626 | DstBlock "Mux4" 1627 | DstPort 1 1628 | } 1629 | } 1630 | Line { 1631 | Labels [3, 1] 1632 | SrcBlock "Mux3" 1633 | SrcPort 1 1634 | Points [25, 0; 0, 215; -755, 0; 0, -215] 1635 | DstBlock "Front Suspension" 1636 | DstPort 1 1637 | } 1638 | Line { 1639 | Labels [-1, 0] 1640 | SrcBlock "Mux4" 1641 | SrcPort 1 1642 | DstBlock "Rear Suspension" 1643 | DstPort 1 1644 | } 1645 | Line { 1646 | SrcBlock "Sum5" 1647 | SrcPort 1 1648 | DstBlock "Zdot" 1649 | DstPort 1 1650 | } 1651 | Line { 1652 | SrcBlock "acceleration \ndue to gravity" 1653 | SrcPort 1 1654 | Points [55, 0] 1655 | DstBlock "Sum5" 1656 | DstPort 2 1657 | } 1658 | Line { 1659 | SrcBlock "1/(Body Mass)" 1660 | SrcPort 1 1661 | DstBlock "Sum5" 1662 | DstPort 1 1663 | } 1664 | Line { 1665 | Name "Zdot" 1666 | Labels [1, 0] 1667 | SrcBlock "Zdot" 1668 | SrcPort 1 1669 | Points [60, 0] 1670 | Branch { 1671 | DstBlock "Z" 1672 | DstPort 1 1673 | } 1674 | Branch { 1675 | Labels [2, 1] 1676 | Points [0, 60] 1677 | DstBlock "Mux2" 1678 | DstPort 2 1679 | } 1680 | } 1681 | Line { 1682 | Name "My" 1683 | Labels [1, 0] 1684 | SrcBlock "Pitch moment \ninduced by \nvehicle acceleration" 1685 | SrcPort 1 1686 | DstBlock "Sum6" 1687 | DstPort 1 1688 | } 1689 | Line { 1690 | SrcBlock "Sum6" 1691 | SrcPort 1 1692 | DstBlock "1/(Body Inertia)" 1693 | DstPort 1 1694 | } 1695 | Line { 1696 | Name "Reart Pitch Moment" 1697 | Labels [1, 0] 1698 | SrcBlock "Rear Suspension" 1699 | SrcPort 1 1700 | Points [-90, 0] 1701 | DstBlock "Sum6" 1702 | DstPort 3 1703 | } 1704 | Line { 1705 | Name "-Front Pitch Moment" 1706 | Labels [0, 0] 1707 | SrcBlock "Front Suspension" 1708 | SrcPort 1 1709 | Points [94, 0] 1710 | DstBlock "Sum6" 1711 | DstPort 2 1712 | } 1713 | Line { 1714 | SrcBlock "1/(Body Inertia)" 1715 | SrcPort 1 1716 | DstBlock "THETAdot" 1717 | DstPort 1 1718 | } 1719 | Line { 1720 | Name "Theta" 1721 | Labels [1, 0] 1722 | SrcBlock "THETA" 1723 | SrcPort 1 1724 | DstBlock "Mux1" 1725 | DstPort 1 1726 | } 1727 | Line { 1728 | Name "Thetadot" 1729 | Labels [0, 1] 1730 | SrcBlock "THETAdot" 1731 | SrcPort 1 1732 | Points [10, 0; 30, 0] 1733 | Branch { 1734 | DstBlock "THETA" 1735 | DstPort 1 1736 | } 1737 | Branch { 1738 | Points [0, 50] 1739 | DstBlock "Mux1" 1740 | DstPort 2 1741 | } 1742 | } 1743 | Line { 1744 | Labels [0, 0] 1745 | SrcBlock "Mux2" 1746 | SrcPort 1 1747 | Points [20, 0; 0, -105] 1748 | Branch { 1749 | Points [0, 0] 1750 | DstBlock "Mux4" 1751 | DstPort 2 1752 | } 1753 | Branch { 1754 | Points [0, 0] 1755 | DstBlock "Mux3" 1756 | DstPort 2 1757 | } 1758 | } 1759 | Line { 1760 | Name "h" 1761 | Labels [1, 0] 1762 | SrcBlock "Road Height" 1763 | SrcPort 1 1764 | Points [30, 0] 1765 | DstBlock "Sum" 1766 | DstPort 1 1767 | } 1768 | Line { 1769 | Name "Z" 1770 | Labels [1, 0] 1771 | SrcBlock "Z" 1772 | SrcPort 1 1773 | DstBlock "Sum" 1774 | DstPort 2 1775 | } 1776 | Line { 1777 | Name "Z+h" 1778 | Labels [0, 1] 1779 | SrcBlock "Sum" 1780 | SrcPort 1 1781 | Points [35, 0; 0, 25] 1782 | DstBlock "Mux2" 1783 | DstPort 1 1784 | } 1785 | Annotation { 1786 | Name "Vehicle Suspension Model" 1787 | Position [397, 17] 1788 | VerticalAlignment "top" 1789 | FontName "Arial" 1790 | FontSize 18 1791 | FontWeight "bold" 1792 | } 1793 | Annotation { 1794 | Name "Copyright 1990-2008 The MathWorks, Inc." 1795 | Position [401, 456] 1796 | } 1797 | } 1798 | } 1799 | --------------------------------------------------------------------------------