Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
4 -Sistema N�o Linear/AmKAeHY_4YnBhksVVuK9x6o6KRu-hsUp9RyOleFrSFQb.jpg 4 -Sistema N�o Linear/Ap5DmjHiwc70LQZaJKbkoGYFEhG7W_5B4cpFoakuVPxM.jpg 4 -Sistema N�o Linear/Parte 1 - Linearizacao.pdf Faculdade de Engenharia To´picos Especiais II - ECA Introduc¸a˜o a` Sistemas Na˜o-Lineares Parte II - Linearizac¸a˜o 1 Introduc¸a˜o Uma forma bastante difundida no controle de sistemas na˜o lineares e´ a li- nearizac¸a˜o no entorno de um ponto de operac¸a˜o estaciona´rio. Desta forma, podem-se aplicar as diversas te´cnicas de projeto de sistemas de controle li- neares (tanto no domı´nio da frequ¨eˆncia quanto no domı´nio do tempo). 2 Linearizac¸a˜o Seja o seguinte sistema na˜o-linear: x˙ = f(x(t), u(t)) y = h(x(t), u(t)) (1) onde x e´ o vetor de estados, u e´ o sinal de entrada, y e´ o sinal de sa´ıda, e f e h sa˜o func¸o˜es na˜o lineares dos estados e da entrada. Suponha que se deseja operar o sistema de controle no entorno de um ponto de operac¸a˜o (x∗, u∗). Para isto podemos “linearizar” as equac¸o˜es em (1), e projetar uma lei de controle para o modelo: ∆x˙ = A∆x+B∆u ∆y = C∆x+D∆u (2) onde, x(t) = x ∗+∆x(t), A = ∂f(x,u) ∂x ∣ ∣ ∣ x=x∗, u=u∗ B = ∂f(x,u) ∂u ∣ ∣ ∣ x=x∗, u=u∗ u(t) = u ∗+∆u(t), C = ∂h(x,u) ∂x ∣ ∣ ∣ x=x∗, u=u∗ D = ∂h(x,u) ∂u ∣ ∣ ∣ x=x∗, u=u∗ y(t) = y ∗+∆y(t), (3) Este modelo e´ uma aproximac¸a˜o do sistema (1) no ponto (x∗, u∗). Note que no modelo linearizado, os estados, a entrada e a sa´ıda representam pequenas variac¸o˜es no entorno deste ponto. Uma lei de controle linear pode ser aplicada ao sistema definido em (2) de maneira a garantir que o sistema se mantenha nestas condic¸o˜es de operac¸a˜o independente de poss´ıveis perturbac¸o˜es externas. 1 3 Peˆndulo Invertido Utilizando as leis de Newton para o movimento linear e rotacional, obteˆm-se as seguintes equac¸o˜es que representam a dinaˆmica deste sistema: z¨ = u−mlθ˙ 2sen(θ)−mgsen(θ)cos(θ)−b1z˙+(b2/l)θ˙cos(θ) M+msen2(θ) θ¨ = −mlθ˙ 2sen(θ)cos(θ)−(m+M)gsen(θ)+b1 z˙cos(θ)+ucos(θ)−(1+M/m)(b2/l)θ˙ l(M+msen2(θ)) (4) onde M e´ a massa do carro e m a massa no final da haste (supo˜e-se que a haste possui peso desprez´ıvel), b1 o coeficiente de atrito do carro e b2 o atrito da haste, l o comprimento da haste e F a forc¸a aplicada ao carro (sinal de controle). As varia´veis sa˜o a posic¸a˜o do carro z e o aˆngulo do peˆndulo com o eixo vertical θ. m, l M θ F z l Figura 1: Representac¸a˜o do sistema a ser controlado. 2 4 Tarefas Suponha que as constantes f´ısicas do peˆndulo sa˜o os valores especificados na Tabela a seguir. M 1 kg m 0.3 kg b1 0.5 kg/s b2 0.1 kg/s l 1 m g 9.81 m/s2 u¯ 20 N Onde u¯ representa a saturac¸a˜o da entrada u. Pede-se determinar: 1. (2.0 pontos) Uma representac¸a˜o por varia´veis de estado do modelo na˜o linear, onde x1 = z, x2 = z˙, x3 = θ, x4 = θ˙, u = F, e y = z 2. (2.0 pontos) Obter ummodelo linearizado entorno do ponto de equil´ıbrio esta´vel: x1∗ = 0, x2∗ = 0, x3∗ = 0, x4∗ = 0, u∗ = 0. 3. (2.0 pontos) Montar um diagrama de simulac¸a˜o completo considerando o sistema na˜o linear e a sua aproximac¸a˜o linearizada. 4. (2.0 pontos) Compare o sistema e a aproximac¸a˜o para condic¸o˜es iniciais: • x(0) = [0 0 5◦ 0]; • x(0) = [0 0 45◦ 0]; • x(0) = [0 0 90◦ 0]; • x(0) = [0 0 180◦ 0]; Que concluso˜es pode-se tirar da aproximac¸a˜o linear? 5. Apresente o trabalho para o professor ate´ a data estipulada em aula. Boa sorte. Refereˆncias [1] Slotine, J.J.E. e W. Li. Applied Nonlinear Control. Prentice Hall. 1991. [2] Khalil, H. K., Nonlinear Systems, 3rd ed. Upper Saddle river, NJ: Prentice Hall, 2002. 3 4 -Sistema N�o Linear/Parte 2 - Controle.pdf Faculdade de Engenharia To´picos Especiais II - ECA Introduc¸a˜o a` Sistemas Na˜o-Lineares - Parte II Controle a partir do modelo linearizado 1 Introduc¸a˜o Uma vez linearizado, o sistema e´ prontamente colocado em sua representac¸a˜o em espac¸o de estados. Uma vez que a forma mais simples de controle para sistemas em espac¸o de estados e´ a alocac¸a˜o de po´los atrave´s da realimentac¸a˜o de estados, este sera´ o tema do presente laborato´rio. Supondo que os estados sa˜o mensura´veis, projeta-se uma lei de controle do formato u = −Kx de tal forma que os po´los do sistema em malha fechada sejam alocados em um ponto de interesse no plano complexo. Assim e´ poss´ıvel impor a dinaˆmica desejada ao sistema. Comec¸aremos projetando um PD para controlar apenas o carro do sistema anterior. Depois faremos um controle mais avanc¸ado incluindo tambe´m a dinaˆmica da haste. 2 Proporcional Derivativo Lembre-se que as equac¸o˜es que descrevem o sistema de interesse sa˜o dadas por, z¨ = u−mlθ˙ 2sen(θ)−mgsen(θ)cos(θ)−b1z˙+(b2/l)θ˙cos(θ) M+msen2(θ) θ¨ = −mlθ˙ 2sen(θ)cos(θ)−(m+M)gsen(θ)+b1 z˙cos(θ)+ucos(θ)−(1+M/m)(b2/l)θ˙ l(M+msen2(θ)) (1) Estas equac¸o˜es representam a dinaˆmica da massa M e da haste de cum- primento l e massa m. Pore´m, e´ poss´ıvel representar a dinaˆmica do carro atrave´s das seguintes equac¸o˜es: x˙1 = x2 x˙2 = −b1x2 M + u M + d(θ, θ˙) (2) sendo que z = x1. Na equac¸a˜o (4) o efeito da haste no carro foi agrupado no paraˆmetro d(θ, θ˙). Na primeira tarefa iremos projetar uma lei de controle do 1 tipo PD ignorando os efeitos do paraˆmetro d(θ, θ˙). Assim iremos realimentar o sistema com a seguinte lei de controle: uPD = kp(r − x1)− kdx2 (3) Se substituirmos esta lei de controle nas equac¸o˜es em (4), e considerarmos d(θ, θ˙) = 0 obtemos: x˙ = [ 0 1 − kp M − b1+kd M ] [ x1 x2 ] + [ 0 kp M ] r (4) A func¸a˜o de transfereˆncia entre a refereˆncia r e a sa´ıda y = x1 do sistema pode ser descrita por, G(s) = Y (s) R(s) = kp/M s2 + s( b1+kd M ) + kp M = ω2n s2 + 2ξωn + ω2n De onde tira-se a relac¸a˜o direta entre os ganhos do controlador e os paraˆmetros que descrevem o sistema: kp = Mω 2 n, kd = 2Mξωn − b1 (5) Tarefas (1) Pede-se, • Usando a relac¸a˜o em (5) e a aproximac¸a˜o do tempo de acomodac¸a˜o ta dada por, ta ≈ 3.9 ξωn . Implemente a lei de controle (3) tal que o carro possua um tempo de acomodac¸a˜o ta = 1 s. 2 3 Alocac¸a˜o de Po´los Agora veremos uma generalizac¸a˜o do controle PD proposto anteriormente. Seja o seguinte sistema linear ou linearizado em torno de um ponto de equil´ıbrio: x˙ = Ax+Bu, y = Cx+Du, (6) onde x ∈ Rn e´ o vetor de estados, u ∈ Rm e´ a entrada aplicada ao sistema, e y ∈ Rp o sinal de sa´ıda. A matriz An×n descreve a dinaˆmica do sistema, a matriz Bn×m descreve a forma como a entrada u atua no sistema, e a matriz Cp×n determina os sinais de sa´ıda y. Uma lei de controle linear do tipo u = −Kx pode alterar a dinaˆmica do sistema definido em (6): x˙ = Ax−BKx, = (A− BK)x, (7) Escolhendo o ganho K de maneira adequada, podemos alocar os po´los da matriz em malha fechada em qualquer lugar no plano complexo. Pore´m, e´ necessa´rio o conhecimento (medic¸a˜o) de todos os estados do sistema uma vez que a lei de controle e´ dada por, u = −Kx = − [ k1 k2 . . . kn ] x1 x2 ... xn = −k1x1−k2x2−· · ·−knxn. (8) Quando todos os estados na˜o sa˜o mensura´veis, devemos reconstru´ı-los atrave´s de um observador de estados. 3 Tarefas (2) Usando a ferramenta de simulac¸a˜o Matlab Simulinkrpede-se, • Para o sistema linearizado do carro-haste, projete uma lei de con- trole u = −Kx. Para projetar o ganho K, utilize a func¸a˜o place no Matlabr. Teste seu ca´lculo com eig(A-BK). • Aplique a mesma lei de controle para o sistema na˜o linear e para sua aproximac¸a˜o linearizada para diferentes condic¸o˜es iniciais. Existe muita diferenc¸a no desempenho? • Calcule F , o ganho DC do sistema para a relac¸a˜o Forca → Posic¸a˜o do Carro, ou seja, F=-inv([1 0 0 0]*inv(A-B*K)*B). Simule um de- grau unita´rio no sistema real e no sistema linearizado. Comente os resultados. • Apresente o trabalho para o professor ate´ a data estipulada em aula. Boa sorte. Refereˆncias [1] Slotine, J.J.E. e W. Li. Applied Nonlinear Control. Prentice Hall. 1991. [2] Khalil, H. K., Nonlinear Systems, 3rd ed. Upper Saddle river, NJ: Prentice Hall, 2002. 4 4 -Sistema N�o Linear/SimPendulo.m clear all; clc T = 0.01; ttotal = 20; %% Dados do sistema g=9.8; % gravidade l=1; % lenght of rod M=1; % mass of cart m=0.3; % mass of Pendulum b1= 0.5; % cart friction b2= 0.1; % pendulum friction sat = 20;% saturation of controller % ang = 3; IC1=2; % posicao inicial do carro %IC2=ang*pi/180; % posicao inicial da haste IC2=pi/2; % posicao inicial da haste A = [0 1 0 0; 0 -(b1/M) -((m*g)/M) (b2/(l*M)); 0 0 0 1; 0 (b1/(l*M)) -((m+M)*g)/(l*M) -(((1+(M/m))*(b2/l))/(l*M))]; B = [0; 1/M; 0; 1/(l*M)]; C = [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]; D = [0; 0; 0; 0]; syms Q K1 K2 K3 K4 ; Z = [Q 0 0 0; 0 Q 0 0; 0 0 Q 0; 0 0 0 Q]; W = [0 0 0 0; K1/M K2/M K3/M K4/M; 0 0 0 0; K1/l*M K2/l*M K3/l*M K4/l*M]; %%%%%%%%%%%%controle%%%%%%%%%%% ksi = 0.4; wn = 3.9/ksi; kp = M*wn^2; kd = 2*M*ksi*wn - b1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NG = wn^2; DG = [1 2*ksi*wn wn^2]; J = roots(DG); G = tf(NG, DG); P = [J(1) J(2) -4 -3]; K = acker(A,B,P); F=-inv([1 0 0 0]*inv(A-B*K)*B) V = eig(A-W) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sim('SysPenInv'); N=size(simout.signals.values); N=N(1); y(:,1)=simout.signals.values(:,1); y(:,2)=simout.signals.values(:,2); %% mov fig=figure(2); for k =1:length(y(:,1)) fig; Z1 = [y(k,1)-0.3 y(k,1)+0.3]; Z2 = [0 0]; plot(Z1,Z2,'r','LineWidth',7); hold on plot([-5 -1 -1 -1 0 0 0 1 1 1 5],[-0.1 -0.1 -0.2 -0.1 -0.1 -0.2 -0.1 -0.1 -0.2 -0.1 -0.1],'k','LineWidth',1); plot([y(k,1) y(k,1)-l*sin(y(k,2))],[0 -l*cos(y(k,2))],'LineWidth',0.5); plot([y(k,1)-l*sin(y(k,2))],[-l*cos(y(k,2))],'*','LineWidth',5); axis off; axis equal; axis([-3 3 -3 3]); hold off drawnow pause(0.0001) end %z2=(u(5)-(m*l*(u(4)^2)*sin(u(3)))-(m*g*sin(u(3))*cos(u(3)))-(b1*u(2))+((b2/l)*u(4)*cos(u(3))))/(M+(m*(sin(u(3))^2))) %o2=(-m*l*(u(4)^2)*sin(u(3))*cos(u(3))-(m+M)*g*sin(u(3))+b1*u(2)*cos(u(3))+(u(5)*cos(u(3)))-(1+M/m)*(b2/l)*u(4))/(l*(M+m*(sin(u(3))^2))) 4 -Sistema N�o Linear/SysPenInv.mdl Model { Name "SysPenInv" Version 7.8 MdlSubVersion 0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.72" NumModelReferences 0 NumTestPointedSignals 0 } SavedCharacterEncoding "windows-1252" SaveDefaultBlockParams on ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on DisableAllScopes off DataTypeOverride "UseLocalSettings" DataTypeOverrideAppliesTo "AllNumericTypes" MinMaxOverflowLogging "UseLocalSettings" MinMaxOverflowArchiveMode "Overwrite" FPTRunName "Run 1" MaxMDLFileLineLength 120 Created "Fri Sep 16 18:52:27 2011" Creator "Aurelio Salton" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%<Auto>" LastModifiedBy "10104256" ModifiedDateFormat "%<Auto>" LastModifiedDate "Thu May 28 19:09:56 2015" RTWModifiedTimeStamp 354738635 ModelVersionFormat "1.%<AutoIncrement:72>" ConfigurationManager "None" SampleTimeColors off SampleTimeAnnotations off LibraryLinkDisplay "none" WideLines off ShowLineDimensions off ShowPortDataTypes off ShowDesignRanges off ShowLoopsOnError on IgnoreBidirectionalLines off ShowStorageClass off ShowTestPointIcons on ShowSignalResolutionIcons on ShowViewerIcons on SortedOrder off ExecutionContextIcon off ShowLinearizationAnnotations on BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off SimulationMode "normal" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dw" CovNameIncrementing off CovHtmlReporting on CovForceBlockReductionOff on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" CovCumulativeReport off CovReportOnPause on CovModelRefEnable "Off" CovExternalEMLEnable off ExtModeBatchMode off ExtModeEnableFloating on ExtModeTrigType "manual" ExtModeTrigMode "normal" ExtModeTrigPort "1" ExtModeTrigElement "any" ExtModeTrigDuration 1000 ExtModeTrigDurationFloating "auto" ExtModeTrigHoldOff 0 ExtModeTrigDelay 0 ExtModeTrigDirection "rising" ExtModeTrigLevel 0 ExtModeArchiveMode "off" ExtModeAutoIncOneShot off ExtModeIncDirWhenArm off ExtModeAddSuffixToVar off ExtModeWriteAllDataToWs off ExtModeArmWhenConnect on ExtModeSkipDownloadWhenConnect off ExtModeLogAll on ExtModeAutoUpdateStatusClock on BufferReuse on ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 1 Version "1.11.1" Array { Type "Handle" Dimension 8 Simulink.SolverCC { $ObjectID 2 Version "1.11.1" StartTime "0.0" StopTime "ttotal" AbsTol "auto" FixedStep "auto" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ZcThreshold "auto" ConsecutiveZCsStepRelTol "10*128*eps" MaxConsecutiveZCs "1000" ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" MaxConsecutiveMinStep "1" RelTol "1e-3" SolverMode "Auto" ConcurrentTasks off Solver "ode45" SolverName "ode45" SolverJacobianMethodControl "auto" ShapePreserveControl "DisableAll" ZeroCrossControl "UseLocalSettings" ZeroCrossAlgorithm "Nonadaptive" AlgebraicLoopSolver "TrustRegion" SolverResetMethod "Fast" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" InsertRTBMode "Whenever possible" } Simulink.DataIOCC { $ObjectID 3 Version "1.11.1" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" InitialState "xInitial" LimitDataPoints on MaxDataPoints "1000" LoadExternalInput off LoadInitialState off SaveFinalState off SaveCompleteFinalSimState off SaveFormat "Array" SignalLoggingSaveFormat "ModelDataLogs" SaveOutput on SaveState off SignalLogging on DSMLogging on InspectSignalLogs off SaveTime on ReturnWorkspaceOutputs off StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsout" DSMLoggingName "dsmout" OutputOption "RefineOutputTimes" OutputTimes "[]" ReturnWorkspaceOutputsName "out" Refine "1" } Simulink.OptimizationCC { $ObjectID 4 Version "1.11.1" Array { Type "Cell" Dimension 4 Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "NoFixptDivByZeroProtection" Cell "OptimizeModelRefInitCode" PropName "DisabledProps" } BlockReduction on BooleanDataType on ConditionallyExecuteInputs on InlineParams off UseIntDivNetSlope off UseFloatMulNetSlope off UseSpecifiedMinMax off InlineInvariantSignals off OptimizeBlockIOStorage on BufferReuse on EnhancedBackFolding off StrengthReduction off ExpressionFolding on BooleansAsBitfields off BitfieldContainerType "uint_T" EnableMemcpy on MemcpyThreshold 64 PassReuseOutputArgsAs "Structure reference" ExpressionDepthLimit 2147483647 FoldNonRolledExpr on LocalBlockOutputs on RollThreshold 5 SystemCodeInlineAuto off StateBitsets off DataBitsets off UseTempVars off ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero on NoFixptDivByZeroProtection off EfficientFloat2IntCast off EfficientMapNaN2IntZero on OptimizeModelRefInitCode off LifeSpan "inf" MaxStackSize "Inherit from target" BufferReusableBoundary on SimCompilerOptimization "Off" AccelVerboseBuild off AccelParallelForEachSubsystem on } Simulink.DebuggingCC { $ObjectID 5 Version "1.11.1" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" SignalInfNanChecking "none" SignalRangeChecking "none" ReadBeforeWriteMsg "UseLocalSettings" WriteAfterWriteMsg "UseLocalSettings" WriteAfterReadMsg "UseLocalSettings" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" SaveWithDisabledLinksMsg "warning" SaveWithParameterizedLinksMsg "none" CheckSSInitialOutputMsg on UnderspecifiedInitializationDetection "Classic" MergeDetectMultiDrivingBlocksExec "none" CheckExecutionContextPreStartOutputMsg off CheckExecutionContextRuntimeOutputMsg off SignalResolutionControl "UseLocalSettings" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" TimeAdjustmentMsg "none" MaxConsecutiveZCsMsg "error" MaskedZcDiagnostic "warning" IgnoredZcDiagnostic "warning" SolverPrmCheckMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "warning" MultiTaskDSMMsg "warning" MultiTaskCondExecSysMsg "none" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" TasksWithSamePriorityMsg "warning" SigSpecEnsureSampleTimeMsg "warning" CheckMatrixSingularityMsg "none" IntegerOverflowMsg "warning" Int32ToFloatConvMsg "warning" ParameterDowncastMsg "error" ParameterOverflowMsg "error" ParameterUnderflowMsg "none" ParameterPrecisionLossMsg "warning" ParameterTunabilityLossMsg "warning" FixptConstUnderflowMsg "none" FixptConstOverflowMsg "none" FixptConstPrecisionLossMsg "none" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" FcnCallInpInsideContextMsg "Enable All" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" FrameProcessingCompatibilityMsg "warning" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" ModelReferenceCSMismatchMessage "none" UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" ModelReferenceExtraNoncontSigs "error" StateNameClashWarn "warning" SimStateInterfaceChecksumMismatchMsg "warning" SimStateOlderReleaseMsg "error" InitInArrayFormatMsg "warning" StrictBusMsg "None" BusNameAdapt "WarnAndRepair" NonBusSignalsTreatedAsBus "none" LoggingUnavailableSignals "error" BlockIODiagnostic "none" SFUnusedDataAndEventsDiag "warning" SFUnexpectedBacktrackingDiag "warning" SFInvalidInputDataAccessInChartInitDiag "warning" SFNoUnconditionalDefaultTransitionDiag "warning" SFTransitionOutsideNaturalParentDiag "warning" SFUnconditionalTransitionShadowingDiag "warning" } Simulink.HardwareCC { $ObjectID 6 Version "1.11.1" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 ProdBitPerFloat 32 ProdBitPerDouble 64 ProdBitPerPointer 32 ProdLargestAtomicInteger "Char" ProdLargestAtomicFloat "None" ProdIntDivRoundTo "Undefined" ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 TargetBitPerFloat 32 TargetBitPerDouble 64 TargetBitPerPointer 32 TargetLargestAtomicInteger "Char" TargetLargestAtomicFloat "None" TargetShiftRightIntArith on TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "32-bit Generic" TargetUnknown off ProdEqTarget on } Simulink.ModelReferenceCC { $ObjectID 7 Version "1.11.1" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off ParallelModelReferenceErrorOnInvalidPool on ParallelModelReferenceMATLABWorkerInit "None" ModelReferenceNumInstancesAllowed "Multi" PropagateVarSize "Infer from blocks in model" ModelReferencePassRootInputsByReference on ModelReferenceMinAlgLoopOccurrences off PropagateSignalLabelsOutOfModel off SupportModelReferenceSimTargetCustomCode off } Simulink.SFSimCC { $ObjectID 8 Version "1.11.1" SFSimEnableDebug on SFSimOverflowDetection on SFSimEcho on SimBlas on SimCtrlC on SimExtrinsic on SimIntegrity on SimUseLocalCustomCode off SimParseCustomCode on SimBuildMode "sf_incremental_build" } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 9 Version "1.11.1" Array { Type "Cell" Dimension 6 Cell "IncludeHyperlinkInReport" Cell "GenerateTraceInfo" Cell "GenerateTraceReport" Cell "GenerateTraceReportSl" Cell "GenerateTraceReportSf" Cell "GenerateTraceReportEml" PropName "DisabledProps" } SystemTargetFile "grt.tlc" GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off RTWVerbose on RetainRTWFile off ProfileTLC off TLCDebug off TLCCoverage off TLCAssert off ProcessScriptMode "Default" ConfigurationMode "Optimized" ConfigAtBuild off RTWUseLocalCustomCode off RTWUseSimCustomCode off IncludeHyperlinkInReport off LaunchReport off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off IncludeERTFirstTime on GenerateTraceInfo off GenerateTraceReport off GenerateTraceReportSl off GenerateTraceReportSf off GenerateTraceReportEml off GenerateCodeInfo off GenerateSLWebview off GenerateCodeMetricsReport off RTWCompilerOptimization "Off" CheckMdlBeforeBuild "Off" CustomRebuildMode "OnUpdate" Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 10 Version "1.11.1" Array { Type "Cell" Dimension 16 Cell "IgnoreCustomStorageClasses" Cell "InsertBlockDesc" Cell "SFDataObjDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InlinedPrmAccess" Cell "CustomSymbolStr" Cell "CustomSymbolStrGlobalVar" Cell "CustomSymbolStrType" Cell "CustomSymbolStrField" Cell "CustomSymbolStrFcn" Cell "CustomSymbolStrBlkIO" Cell "CustomSymbolStrTmpVar" Cell "CustomSymbolStrMacro" PropName "DisabledProps" } ForceParamTrailComments off GenerateComments on IgnoreCustomStorageClasses on IgnoreTestpoints off IncHierarchyInIds off MaxIdLength 31 PreserveName off PreserveNameWithParent off ShowEliminatedStatement off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off MATLABFcnDesc off IncDataTypeInIds off MangleLength 1 CustomSymbolStrGlobalVar "$R$N$M" CustomSymbolStrType "$N$R$M" CustomSymbolStrField "$N$M" CustomSymbolStrFcn "$R$N$M$F" CustomSymbolStrFcnArg "rt$I$N$M" CustomSymbolStrBlkIO "rtb_$N$M" CustomSymbolStrTmpVar "$N$M" CustomSymbolStrMacro "$R$N$M" DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" InsertBlockDesc off InsertPolySpaceComments off SimulinkBlockComments on MATLABSourceComments off EnableCustomComments off InlinedPrmAccess "Literals" ReqsInCode off UseSimReservedNames off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 11 Version "1.11.1" Array { Type "Cell" Dimension 15 Cell "IncludeMdlTerminateFcn" Cell "CombineOutputUpdateFcns" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "GenerateTestInterfaces" Cell "ModelStepFunctionPrototypeControlCompliant" Cell "CPPClassGenCompliant" Cell "MultiInstanceERTCode" Cell "PurelyIntegerCode" Cell "PortableWordSizes" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" PropName "DisabledProps" } TargetFcnLib "ansi_tfl_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" TargetFunctionLibrary "ANSI_C" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" CodeExecutionProfiling off ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on GenerateSampleERTMain off GenerateTestInterfaces off IsPILTarget off ModelReferenceCompliant on ParMdlRefBuildCompliant on CompOptLevelCompliant on ConcurrentExecutionCompliant on IncludeMdlTerminateFcn on GeneratePreprocessorConditionals "Disable all" CombineOutputUpdateFcns off CombineSignalStateStructs off SuppressErrorStatus off ERTFirstTimeCompliant off IncludeFileDelimiter "Auto" ERTCustomFileBanners off SupportAbsoluteTime on LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on SupportVariableSizeSignals off EnableShiftOperators on ParenthesesLevel "Nominal" PortableWordSizes off ModelStepFunctionPrototypeControlCompliant off CPPClassGenCompliant off AutosarCompliant off UseMalloc off ExtMode off ExtModeStaticAlloc off ExtModeTesting off ExtModeStaticAllocSize 1000000 ExtModeTransport 0 ExtModeMexFile "ext_comm" ExtModeIntrfLevel "Level1" RTWCAPISignals off RTWCAPIParams off RTWCAPIStates off RTWCAPIRootIO off GenerateASAP2 off } PropName "Components" } } PropName "Components" } Name "Configuration" CurrentDlgPage "Solver" ConfigPrmDlgPosition [ 243, 69, 1123, 699 ] } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 1 } BlockDefaults { ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on BlockRotation 0 BlockMirror off } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" UseDisplayTextAsClickCallback off } LineDefaults { FontName "Helvetica" FontSize 9 FontWeight "normal" FontAngle "normal" } BlockParameterDefaults { Block { BlockType Constant Value "1" VectorParams1D on SamplingMode "Sample based" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: Inherit from 'Constant value'" LockScale off SampleTime "inf" FramePeriod "inf" PreserveConstantTs off } Block { BlockType Demux Outputs "4" DisplayOption "none" BusSelectionMode off } Block { BlockType Fcn Expr "sin(u[1])" SampleTime "-1" } Block { BlockType Gain Gain "1" Multiplication "Element-wise(K.*u)" ParamMin "[]" ParamMax "[]" ParamDataTypeStr "Inherit: Same as input" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: Same as input" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Inport Port "1" OutputFunctionCall off OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: auto" LockScale off BusOutputAsStruct off PortDimensions "-1" VarSizeSig "Inherit" SampleTime "-1" SignalType "auto" SamplingMode "auto" LatchByDelayingOutsideSignal off LatchInputForFeedbackSignals off Interpolate on } Block { BlockType Integrator ExternalReset "none" InitialConditionSource "internal" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" IgnoreLimit off ZeroCross on ContinuousStateAttributes "''" } Block { BlockType Mux Inputs "4" DisplayOption "none" UseBusObject off BusObject "BusObject" NonVirtualBus off } Block { BlockType Outport Port "1" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: auto" LockScale off BusOutputAsStruct off PortDimensions "-1" VarSizeSig "Inherit" SampleTime "-1" SignalType "auto" SamplingMode "auto" SourceOfInitialOutputValue "Dialog" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Scope ModelBased off TickLabels "OneTimeTick" ZoomMode "on" Grid "on" TimeRange "auto" YMin "-5" YMax "5" SaveToWorkspace off SaveName "ScopeData" LimitDataPoints on MaxDataPoints "5000" Decimation "1" SampleInput off SampleTime "-1" } Block { BlockType StateSpace A "1" B "1" C "1" D "1" X0 "0" AbsoluteTolerance "auto" ContinuousStateAttributes "''" Realization "auto" } Block { BlockType Step Time "1" Before "0" After "1" SampleTime "-1" VectorParams1D on ZeroCross on } Block { BlockType SubSystem ShowPortLabels "FromPortIcon" Permissions "ReadWrite" PermitHierarchicalResolution "All" TreatAsAtomicUnit off CheckFcnCallInpInsideContextMsg off SystemSampleTime "-1" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" SimViewingDevice off DataTypeOverride "UseLocalSettings" DataTypeOverrideAppliesTo "AllNumericTypes" MinMaxOverflowLogging "UseLocalSettings" SFBlockType "NONE" Variant off GeneratePreprocessorConditionals off } Block { BlockType Sum IconShape "rectangular" Inputs "++" CollapseMode "All dimensions" CollapseDim "1" InputSameDT on AccumDataTypeStr "Inherit: Inherit via internal rule" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: Same as first input" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Terminator } Block { BlockType ToWorkspace VariableName "simulink_output" MaxDataPoints "1000" Decimation "1" SampleTime "0" FixptAsFi off NumInputs "1" } } System { Name "SysPenInv" Location [487, 82, 1207, 739] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" ReportName "simulink-default.rpt" SIDHighWatermark "130" Block { BlockType Constant Name "Constant" SID "1" Position [55, 215, 85, 245] ZOrder -1 Value "0" } Block { BlockType Demux Name "Demux" SID "24" Ports [1, 2] Position [355, 376, 360, 414] ZOrder 6 ShowName off Outputs "2" DisplayOption "bar" } Block { BlockType Demux Name "Demux1" SID "93" Ports [1, 4] Position [435, 756, 440, 794] ZOrder 71 ShowName off DisplayOption "bar" } Block { BlockType Gain Name "Gain1" SID "94" Position [325, 815, 355, 845] ZOrder 55 BlockMirror on Gain "K(2)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain10" SID "95" Position [305, 1170, 335, 1200] ZOrder 68 BlockMirror on Gain "K(4)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain2" SID "96" Position [165, 740, 195, 770] ZOrder 56 Gain "K(1)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain3" SID "39" Position [270, 655, 300, 685] ZOrder 26 BlockMirror on Gain "kd" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain4" SID "40" Position [165, 590, 195, 620] ZOrder 27 Gain "kp" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain5" SID "97" Position [325, 855, 355, 885] ZOrder 58 BlockMirror on Gain "K(3)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain6" SID "98" Position [325, 905, 355, 935] ZOrder 59 BlockMirror on Gain "K(4)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain7" SID "99" Position [305, 1080, 335, 1110] ZOrder 64 BlockMirror on Gain "K(2)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain8" SID "100" Position [145, 1005, 175, 1035] ZOrder 65 Gain "K(1)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain9" SID "101" Position [305, 1120, 335, 1150] ZOrder 67 BlockMirror on Gain "K(3)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType SubSystem Name "Inv Pend" SID "2" Ports [1, 4] Position [285, 196, 325, 259] ZOrder -2 BackgroundColor "orange" MinAlgLoopOccurrences off PropExecContextOutsideSubsystem off RTWSystemCode "Auto" FunctionWithSeparateData off Opaque off RequestExecContextInheritance off MaskHideContents off System { Name "Inv Pend" Location [720, 0, 1440, 870] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [1.270000, 1.270000, 1.270000, 1.270000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" SID "3" Position [125, 113, 155, 127] ZOrder -1 BlockMirror on IconDisplay "Port number" } Block { BlockType Fcn Name "Fcn" SID "4" Position [55, 25, 115, 55] ZOrder -2 Expr "(u(5)-(m*l*(u(4)^2)*sin(u(3)))-(m*g*sin(u(3))*cos(u(3)))-(b1*u(2))+((b2/l)*u(4)*cos(u(3))))/(M+(m*(sin(u(" "3))^2)))" } Block { BlockType Fcn Name "Fcn1" SID "5" Position [65, 170, 125, 200] ZOrder -3 Expr "(-m*l*(u(4)^2)*sin(u(3))*cos(u(3))-(m+M)*g*sin(u(3))+b1*u(2)*cos(u(3))+(u(5)*cos(u(3)))-(1+M/m)*(b2/l)*u(" "4))/(l*(M+m*(sin(u(3))^2)))" } Block { BlockType Integrator Name "Integrator" SID "6" Ports [1, 1] Position [165, 25, 195, 55] ZOrder -4 } Block { BlockType Integrator Name "Integrator1" SID "7" Ports [1, 1] Position [245, 25, 275, 55] ZOrder -5 InitialCondition "IC1" Port { PortNumber 1 Name "x" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Integrator Name "Integrator2" SID "8" Ports [1, 1] Position [165, 170, 195, 200] ZOrder -6 } Block { BlockType Integrator Name "Integrator3" SID "9" Ports [1, 1] Position [245, 170, 275, 200] ZOrder -7 InitialCondition "IC2" Port { PortNumber 1 Name "o" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Mux Name "Mux1" SID "10" Ports [5, 1] Position [95, 69, 100, 131] ZOrder -8 BlockMirror on NamePlacement "alternate" ShowName off Inputs "5" DisplayOption "bar" } Block { BlockType Outport Name "z" SID "11" Position [330, 33, 360, 47] ZOrder -9 IconDisplay "Port number" } Block { BlockType Outport Name "z." SID "12" Position [335, 83, 365, 97] ZOrder -10 Port "2" IconDisplay "Port number" } Block { BlockType Outport Name "o" SID "13" Position [320, 158, 350, 172] ZOrder -11 Port "3" IconDisplay "Port number" } Block { BlockType Outport Name "o." SID "14" Position [235, 123, 265, 137] ZOrder -12 Port "4" IconDisplay "Port number" } Line { SrcBlock "Integrator" SrcPort 1 Points [20, 0] Branch { DstBlock "Integrator1" DstPort 1 } Branch { Points [0, 50] Branch { DstBlock "Mux1" DstPort 2 } Branch { DstBlock "z." DstPort 1 } } } Line { Name "x" Labels [1, 0] SrcBlock "Integrator1" SrcPort 1 Points [25, 0] Branch { DstBlock "z" DstPort 1 } Branch { Points [0, 40] DstBlock "Mux1" DstPort 1 } } Line { SrcBlock "Integrator2" SrcPort 1 Points [15, 0] Branch { DstBlock "Integrator3" DstPort 1 } Branch { Points [0, -55] Branch { Points [0, -20] DstBlock "Mux1" DstPort 4 } Branch { DstBlock "o." DstPort 1 } } } Line { SrcBlock "Fcn" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { Name "o" Labels [0, 0] SrcBlock "Integrator3" SrcPort 1 Points [0, -20; 20, 0] Branch { Points [0, -65] DstBlock "Mux1" DstPort 3 } Branch { DstBlock "o" DstPort 1 } } Line { SrcBlock "Mux1" SrcPort 1 Points [-60, 0] Branch { Points [0, -60] DstBlock "Fcn" DstPort 1 } Branch { Points [0, 85] DstBlock "Fcn1" DstPort 1 } } Line { SrcBlock "Fcn1" SrcPort 1 DstBlock "Integrator2" DstPort 1 } Line { SrcBlock "In1" SrcPort 1 DstBlock "Mux1" DstPort 5 } } } Block { BlockType SubSystem Name "Inv Pend1" SID "47" Ports [1, 4] Position [305, 571, 345, 634] ZOrder 29 BackgroundColor "orange" MinAlgLoopOccurrences off PropExecContextOutsideSubsystem off RTWSystemCode "Auto" FunctionWithSeparateData off Opaque off RequestExecContextInheritance off MaskHideContents off System { Name "Inv Pend1" Location [720, 0, 1440, 870] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" SID "48" Position [125, 113, 155, 127] ZOrder -1 BlockMirror on IconDisplay "Port number" } Block { BlockType Fcn Name "Fcn" SID "49" Position [55, 25, 115, 55] ZOrder -2 Expr "(u(5)-(m*l*(u(4)^2)*sin(u(3)))-(m*g*sin(u(3))*cos(u(3)))-(b1*u(2))+((b2/l)*u(4)*cos(u(3))))/(M+(m*(sin(u(" "3))^2)))" } Block { BlockType Fcn Name "Fcn1" SID "50" Position [65, 170, 125, 200] ZOrder -3 Expr "(-m*l*(u(4)^2)*sin(u(3))*cos(u(3))-(m+M)*g*sin(u(3))+b1*u(2)*cos(u(3))+(u(5)*cos(u(3)))-(1+M/m)*(b2/l)*u(" "4))/(l*(M+m*(sin(u(3))^2)))" } Block { BlockType Integrator Name "Integrator" SID "51" Ports [1, 1] Position [165, 25, 195, 55] ZOrder -4 } Block { BlockType Integrator Name "Integrator1" SID "52" Ports [1, 1] Position [245, 25, 275, 55] ZOrder -5 InitialCondition "IC1" Port { PortNumber 1 Name "x" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Integrator Name "Integrator2" SID "53" Ports [1, 1] Position [165, 170, 195, 200] ZOrder -6 } Block { BlockType Integrator Name "Integrator3" SID "54" Ports [1, 1] Position [245, 170, 275, 200] ZOrder -7 InitialCondition "IC2" Port { PortNumber 1 Name "o" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Mux Name "Mux1" SID "55" Ports [5, 1] Position [95, 69, 100, 131] ZOrder -8 BlockMirror on NamePlacement "alternate" ShowName off Inputs "5" DisplayOption "bar" } Block { BlockType Outport Name "z" SID "56" Position [330, 33, 360, 47] ZOrder -9 IconDisplay "Port number" } Block { BlockType Outport Name "z." SID "57" Position [335, 83, 365, 97] ZOrder -10 Port "2" IconDisplay "Port number" } Block { BlockType Outport Name "o" SID "58" Position [320, 158, 350, 172] ZOrder -11 Port "3" IconDisplay "Port number" } Block { BlockType Outport Name "o." SID "59" Position [235, 123, 265, 137] ZOrder -12 Port "4" IconDisplay "Port number" } Line { SrcBlock "In1" SrcPort 1 DstBlock "Mux1" DstPort 5 } Line { SrcBlock "Fcn1" SrcPort 1 DstBlock "Integrator2" DstPort 1 } Line { SrcBlock "Mux1" SrcPort 1 Points [-60, 0] Branch { Points [0, 85] DstBlock "Fcn1" DstPort 1 } Branch { Points [0, -60] DstBlock "Fcn" DstPort 1 } } Line { Name "o" Labels [0, 0] SrcBlock "Integrator3" SrcPort 1 Points [0, -20; 20, 0] Branch { DstBlock "o" DstPort 1 } Branch { Points [0, -65] DstBlock "Mux1" DstPort 3 } } Line { SrcBlock "Fcn" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { SrcBlock "Integrator2" SrcPort 1 Points [15, 0] Branch { Points [0, -55] Branch { DstBlock "o." DstPort 1 } Branch { Points [0, -20] DstBlock "Mux1" DstPort 4 } } Branch { DstBlock "Integrator3" DstPort 1 } } Line { Name "x" Labels [1, 0] SrcBlock "Integrator1" SrcPort 1 Points [25, 0] Branch { Points [0, 40] DstBlock "Mux1" DstPort 1 } Branch { DstBlock "z" DstPort 1 } } Line { SrcBlock "Integrator" SrcPort 1 Points [20, 0] Branch { Points [0, 50] Branch { DstBlock "z." DstPort 1 } Branch { DstBlock "Mux1" DstPort 2 } } Branch { DstBlock "Integrator1" DstPort 1 } } } } Block { BlockType SubSystem Name "Inv Pend2" SID "102" Ports [1, 4] Position [320, 1006, 360, 1069] ZOrder 69 BackgroundColor "orange" MinAlgLoopOccurrences off PropExecContextOutsideSubsystem off RTWSystemCode "Auto" FunctionWithSeparateData off Opaque off RequestExecContextInheritance off MaskHideContents off System { Name "Inv Pend2" Location [598, 85, 1318, 742] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" SID "103" Position [125, 113, 155, 127] ZOrder -1 BlockMirror on IconDisplay "Port number" } Block { BlockType Fcn Name "Fcn" SID "104" Position [55, 25, 115, 55] ZOrder -2 Expr "(u(5)-(m*l*(u(4)^2)*sin(u(3)))-(m*g*sin(u(3))*cos(u(3)))-(b1*u(2))+((b2/l)*u(4)*cos(u(3))))/(M+(m*(sin(u(" "3))^2)))" } Block { BlockType Fcn Name "Fcn1" SID "105" Position [65, 170, 125, 200] ZOrder -3 Expr "(-m*l*(u(4)^2)*sin(u(3))*cos(u(3))-(m+M)*g*sin(u(3))+b1*u(2)*cos(u(3))+(u(5)*cos(u(3)))-(1+M/m)*(b2/l)*u(" "4))/(l*(M+m*(sin(u(3))^2)))" } Block { BlockType Integrator Name "Integrator" SID "106" Ports [1, 1] Position [165, 25, 195, 55] ZOrder -4 } Block { BlockType Integrator Name "Integrator1" SID "107" Ports [1, 1] Position [245, 25, 275, 55] ZOrder -5 InitialCondition "IC1" Port { PortNumber 1 Name "x" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Integrator Name "Integrator2" SID "108" Ports [1, 1] Position [165, 170, 195, 200] ZOrder -6 } Block { BlockType Integrator Name "Integrator3" SID "109" Ports [1, 1] Position [245, 170, 275, 200] ZOrder -7 InitialCondition "IC2" Port { PortNumber 1 Name "o" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Mux Name "Mux1" SID "110" Ports [5, 1] Position [95, 69, 100, 131] ZOrder -8 BlockMirror on NamePlacement "alternate" ShowName off Inputs "5" DisplayOption "bar" } Block { BlockType Outport Name "z" SID "111" Position [330, 33, 360, 47] ZOrder -9 IconDisplay "Port number" } Block { BlockType Outport Name "z." SID "112" Position [335, 83, 365, 97] ZOrder -10 Port "2" IconDisplay "Port number" } Block { BlockType Outport Name "o" SID "113" Position [320, 158, 350, 172] ZOrder -11 Port "3" IconDisplay "Port number" } Block { BlockType Outport Name "o." SID "114" Position [235, 123, 265, 137] ZOrder -12 Port "4" IconDisplay "Port number" } Line { SrcBlock "Integrator" SrcPort 1 Points [20, 0] Branch { DstBlock "Integrator1" DstPort 1 } Branch { Points [0, 50] Branch { DstBlock "Mux1" DstPort 2 } Branch { DstBlock "z." DstPort 1 } } } Line { Name "x" Labels [1, 0] SrcBlock "Integrator1" SrcPort 1 Points [25, 0] Branch { DstBlock "z" DstPort 1 } Branch { Points [0, 40] DstBlock "Mux1" DstPort 1 } } Line { SrcBlock "Integrator2" SrcPort 1 Points [15, 0] Branch { DstBlock "Integrator3" DstPort 1 } Branch { Points [0, -55] Branch { Points [0, -20] DstBlock "Mux1" DstPort 4 } Branch { DstBlock "o." DstPort 1 } } } Line { SrcBlock "Fcn" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { Name "o" Labels [0, 0] SrcBlock "Integrator3" SrcPort 1 Points [0, -20; 20, 0] Branch { Points [0, -65] DstBlock "Mux1" DstPort 3 } Branch { DstBlock "o" DstPort 1 } } Line { SrcBlock "Mux1" SrcPort 1 Points [-60, 0] Branch { Points [0, -60] DstBlock "Fcn" DstPort 1 } Branch { Points [0, 85] DstBlock "Fcn1" DstPort 1 } } Line { SrcBlock "Fcn1" SrcPort 1 DstBlock "Integrator2" DstPort 1 } Line { SrcBlock "In1" SrcPort 1 DstBlock "Mux1" DstPort 5 } } } Block { BlockType Mux Name "Mux" SID "15" Ports [2, 1] Position [545, 656, 550, 714] ZOrder -3 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" SID "22" Ports [2, 1] Position [525, 371, 530, 429] ZOrder 4 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" SID "23" Ports [2, 1] Position [525, 471, 530, 529] ZOrder 5 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux3" SID "115" Ports [2, 1] Position [540, 746, 545, 804] ZOrder 54 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux4" SID "41" Ports [2, 1] Position [535, 581, 540, 639] ZOrder 24 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux5" SID "116" Ports [2, 1] Position [520, 1016, 525, 1074] ZOrder 62 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux6" SID "117" Ports [2, 1] Position [560, 856, 565, 914] ZOrder 70 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux7" SID "118" Ports [2, 1] Position [520, 1141, 525, 1199] ZOrder 72 ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Scope Name "Nao linear3" SID "126" Ports [1] Position [590, 1029, 620, 1061] ZOrder 63 Floating off Location [692, 56, 1359, 729] Open off NumInputPorts "1" ZoomMode "xonly" List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.5 0.5 0.5]" AxesColor "[0 0 0]" AxesTickColor "[1 1 1]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } SaveName "ScopeData3" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "Scope" SID "20" Ports [1] Position [570, 384, 600, 416] ZOrder 2 Floating off Location [5, 48, 1445, 869] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.5 0.5 0.5]" AxesColor "[0 0 0]" AxesTickColor "[1 1 1]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType StateSpace Name "State-Space" SID "19" Position [240, 378, 300, 412] ZOrder 1 A "A" B "B" C "C" D "D" X0 "[IC1 0 IC2 0]" } Block { BlockType StateSpace Name "State-Space1" SID "119" Position [325, 758, 385, 792] ZOrder 51 A "A" B "B" C "C" D "D" X0 "[IC1 0 IC2 0]" } Block { BlockType Step Name "Step" SID "120" Position [50, 740, 80, 770] ZOrder 57 SampleTime "0" } Block { BlockType Step Name "Step1" SID "43" Position [50, 590, 80, 620] ZOrder 28 SampleTime "0" } Block { BlockType Step Name "Step2" SID "121" Position [30, 1005, 60, 1035] ZOrder 66 SampleTime "0" } Block { BlockType Sum Name "Sum" SID "122" Ports [4, 1] Position [260, 760, 290, 790] ZOrder 52 ShowName off IconShape "round" Inputs "|+---" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum1" SID "123" Ports [2, 1] Position [125, 745, 145, 765] ZOrder 53 ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum2" SID "44" Ports [2, 1] Position [210, 595, 230, 615] ZOrder 21 ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" SID "45" Ports [2, 1] Position [125, 595, 145, 615] ZOrder 23 ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum4" SID "124" Ports [4, 1] Position [240, 1025, 270, 1055] ZOrder 60 ShowName off IconShape "round" Inputs "|+---" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum5" SID "125" Ports [2, 1] Position [105, 1010, 125, 1030] ZOrder 61 ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Terminator Name "Terminator" SID "16" Position [355, 240, 375, 260] ZOrder -4 ShowName off } Block { BlockType Terminator Name "Terminator1" SID "17" Position [355, 210, 375, 230] ZOrder -5 ShowName off } Block { BlockType ToWorkspace Name "To Workspace" SID "18" Ports [1] Position [575, 1155, 635, 1185] ZOrder -6 VariableName "simout" MaxDataPoints "inf" SampleTime "T" SaveFormat "Structure" } Block { BlockType Scope Name "linear" SID "21" Ports [1] Position [570, 484, 600, 516] ZOrder 3 Floating off Location [9, 116, 713, 839] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.5 0.5 0.5]" AxesColor "[0 0 0]" AxesTickColor "[1 1 1]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } SaveName "ScopeData1" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "linear1" SID "92" Ports [1] Position [590, 594, 620, 626] ZOrder 50 Floating off Location [657, 116, 1361, 839] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.5 0.5 0.5]" AxesColor "[0 0 0]" AxesTickColor "[1 1 1]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } SaveName "ScopeData2" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "linear2" SID "128" Ports [1] Position [585, 759, 615, 791] ZOrder 50 Floating off Location [9, 56, 676, 729] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.5 0.5 0.5]" AxesColor "[0 0 0]" AxesTickColor "[1 1 1]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } SaveName "ScopeData4" DataFormat "StructureWithTime" SampleTime "0" } Line { SrcBlock "Inv Pend" SrcPort 2 DstBlock "Terminator1" DstPort 1 } Line { SrcBlock "Inv Pend" SrcPort 4 DstBlock "Terminator" DstPort 1 } Line { SrcBlock "Inv Pend" SrcPort 3 Points [74, 0; 0, 280] DstBlock "Mux2" DstPort 2 } Line { SrcBlock "Inv Pend" SrcPort 1 Points [100, 0; 0, 210] DstBlock "Mux1" DstPort 2 } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "linear" DstPort 1 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Scope" DstPort 1 } Line { SrcBlock "State-Space" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 DstBlock "Mux1" DstPort 1 } Line { SrcBlock "Demux" SrcPort 2 Points [17, 0; 0, 80] DstBlock "Mux2" DstPort 1 } Line { SrcBlock "Constant" SrcPort 1 Points [55, 0] Branch { Points [0, 165] DstBlock "State-Space" DstPort 1 } Branch { DstBlock "Inv Pend" DstPort 1 } } Line { SrcBlock "Sum2" SrcPort 1 DstBlock "Inv Pend1" DstPort 1 } Line { SrcBlock "Inv Pend1" SrcPort 1 Points [155, 0; 0, 15] Branch { DstBlock "Mux4" DstPort 1 } Branch { Points [0, 75] Branch { DstBlock "Mux" DstPort 1 } Branch { Points [0, 42; -370, 0] DstBlock "Sum3" DstPort 2 } } } Line { SrcBlock "Inv Pend1" SrcPort 2 Points [133, 0; 0, 30] Branch { DstBlock "Mux4" DstPort 2 } Branch { Points [0, 45] DstBlock "Gain3" DstPort 1 } } Line { SrcBlock "Mux4" SrcPort 1 DstBlock "linear1" DstPort 1 } Line { SrcBlock "Gain3" SrcPort 1 Points [-45, 0] DstBlock "Sum2" DstPort 2 } Line { SrcBlock "Sum3" SrcPort 1 DstBlock "Gain4" DstPort 1 } Line { SrcBlock "Gain4" SrcPort 1 DstBlock "Sum2" DstPort 1 } Line { SrcBlock "Step1" SrcPort 1 DstBlock "Sum3" DstPort 1 } Line { SrcBlock "Inv Pend1" SrcPort 3 Points [64, 0; 0, 90] DstBlock "Mux" DstPort 2 } Line { SrcBlock "Demux1" SrcPort 1 Points [65, 0] Branch { Points [0, 110] Branch { Points [0, 90; -375, 0] DstBlock "Sum1" DstPort 2 } Branch { DstBlock "Mux6" DstPort 1 } } Branch { DstBlock "Mux3" DstPort 1 } } Line { SrcBlock "Gain1" SrcPort 1 Points [-45, 0] DstBlock "Sum" DstPort 4 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Gain2" DstPort 1 } Line { SrcBlock "Gain2" SrcPort 1 Points [54, 0] DstBlock "Sum" DstPort 1 } Line { SrcBlock "Step" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Gain5" SrcPort 1 Points [-66, 0] DstBlock "Sum" DstPort 3 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "State-Space1" DstPort 1 } Line { SrcBlock "Gain6" SrcPort 1 Points [-89, 0; 0, -145] DstBlock "Sum" DstPort 2 } Line { SrcBlock "Mux5" SrcPort 1 DstBlock "Nao linear3" DstPort 1 } Line { SrcBlock "Gain7" SrcPort 1 Points [-45, 0] DstBlock "Sum4" DstPort 4 } Line { SrcBlock "Sum5" SrcPort 1 DstBlock "Gain8" DstPort 1 } Line { SrcBlock "Gain8" SrcPort 1 Points [54, 0] DstBlock "Sum4" DstPort 1 } Line { SrcBlock "Step2" SrcPort 1 DstBlock "Sum5" DstPort 1 } Line { SrcBlock "Gain9" SrcPort 1 Points [-66, 0] DstBlock "Sum4" DstPort 3 } Line { SrcBlock "Sum4" SrcPort 1 DstBlock "Inv Pend2" DstPort 1 } Line { SrcBlock "Gain10" SrcPort 1 Points [-89, 0; 0, -145] DstBlock "Sum4" DstPort 2 } Line { SrcBlock "Inv Pend2" SrcPort 3 Points [72, 0; 0, 90] Branch { Points [0, 50] DstBlock "Mux7" DstPort 2 } Branch { DstBlock "Gain9" DstPort 1 } } Line { SrcBlock "Inv Pend2" SrcPort 2 Points [95, 0; 0, 30] Branch { DstBlock "Mux5" DstPort 2 } Branch { Points [0, 35] DstBlock "Gain7" DstPort 1 } } Line { SrcBlock "Inv Pend2" SrcPort 4 Points [48, 0; 0, 125] DstBlock "Gain10" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 2 Points [43, 0; 0, 20] Branch { Points [0, 40] Branch { DstBlock "Gain1" DstPort 1 } Branch { Points [0, 70] DstBlock "Mux6" DstPort 2 } } Branch { DstBlock "Mux3" DstPort 2 } } Line { SrcBlock "State-Space1" SrcPort 1 DstBlock "Demux1" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 3 Points [25, 0; 0, 90] DstBlock "Gain5" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 4 Points [9, 0; 0, 130] DstBlock "Gain6" DstPort 1 } Line { SrcBlock "Inv Pend2" SrcPort 1 Points [125, 0; 0, 15] Branch { DstBlock "Mux5" DstPort 1 } Branch { Points [0, 125] Branch { DstBlock "Mux7" DstPort 1 } Branch { Points [0, 70; -375, 0] DstBlock "Sum5" DstPort 2 } } } Line { SrcBlock "Mux3" SrcPort 1 DstBlock "linear2" DstPort 1 } Line { SrcBlock "Mux7" SrcPort 1 DstBlock "To Workspace" DstPort 1 } } }
Compartilhar