ajout TP2 424
1715
424-Systeme_Non_Lineaires/TP2/Grue_L.mdl
Normal file
882
424-Systeme_Non_Lineaires/TP2/Grue_L.mdl.r2009b
Normal file
|
@ -0,0 +1,882 @@
|
||||||
|
Model {
|
||||||
|
Name "Grue_L"
|
||||||
|
Version 7.4
|
||||||
|
MdlSubVersion 0
|
||||||
|
GraphicalInterface {
|
||||||
|
NumRootInports 0
|
||||||
|
NumRootOutports 0
|
||||||
|
ParameterArgumentNames ""
|
||||||
|
ComputedModelVersion "1.70"
|
||||||
|
NumModelReferences 0
|
||||||
|
NumTestPointedSignals 0
|
||||||
|
}
|
||||||
|
SavedCharacterEncoding "ISO-8859-1"
|
||||||
|
SaveDefaultBlockParams on
|
||||||
|
ScopeRefreshTime 0.035000
|
||||||
|
OverrideScopeRefreshTime on
|
||||||
|
DisableAllScopes off
|
||||||
|
DataTypeOverride "UseLocalSettings"
|
||||||
|
MinMaxOverflowLogging "UseLocalSettings"
|
||||||
|
MinMaxOverflowArchiveMode "Overwrite"
|
||||||
|
MaxMDLFileLineLength 120
|
||||||
|
Created "Fri Mar 23 18:37:01 2012"
|
||||||
|
Creator "abbasturki"
|
||||||
|
UpdateHistory "UpdateHistoryNever"
|
||||||
|
ModifiedByFormat "%<Auto>"
|
||||||
|
LastModifiedBy "abbasturki"
|
||||||
|
ModifiedDateFormat "%<Auto>"
|
||||||
|
LastModifiedDate "Thu Mar 24 18:48:48 2016"
|
||||||
|
RTWModifiedTimeStamp 380746096
|
||||||
|
ModelVersionFormat "1.%<AutoIncrement:70>"
|
||||||
|
ConfigurationManager "None"
|
||||||
|
SampleTimeColors off
|
||||||
|
SampleTimeAnnotations off
|
||||||
|
LibraryLinkDisplay "none"
|
||||||
|
WideLines off
|
||||||
|
ShowLineDimensions off
|
||||||
|
ShowPortDataTypes 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.6.0"
|
||||||
|
Array {
|
||||||
|
Type "Handle"
|
||||||
|
Dimension 8
|
||||||
|
Simulink.SolverCC {
|
||||||
|
$ObjectID 2
|
||||||
|
Version "1.6.0"
|
||||||
|
StartTime "0.0"
|
||||||
|
StopTime "20"
|
||||||
|
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"
|
||||||
|
Solver "ode45"
|
||||||
|
SolverName "ode45"
|
||||||
|
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.6.0"
|
||||||
|
Decimation "1"
|
||||||
|
ExternalInput "[t, u]"
|
||||||
|
FinalStateName "xFinal"
|
||||||
|
InitialState "xInitial"
|
||||||
|
LimitDataPoints on
|
||||||
|
MaxDataPoints "1000"
|
||||||
|
LoadExternalInput off
|
||||||
|
LoadInitialState off
|
||||||
|
SaveFinalState off
|
||||||
|
SaveCompleteFinalSimState off
|
||||||
|
SaveFormat "Array"
|
||||||
|
SaveOutput on
|
||||||
|
SaveState off
|
||||||
|
SignalLogging on
|
||||||
|
InspectSignalLogs off
|
||||||
|
SaveTime on
|
||||||
|
ReturnWorkspaceOutputs off
|
||||||
|
StateSaveName "xout"
|
||||||
|
TimeSaveName "tout"
|
||||||
|
OutputSaveName "yout"
|
||||||
|
SignalLoggingName "logsout"
|
||||||
|
OutputOption "RefineOutputTimes"
|
||||||
|
OutputTimes "[]"
|
||||||
|
ReturnWorkspaceOutputsName "out"
|
||||||
|
Refine "1"
|
||||||
|
}
|
||||||
|
Simulink.OptimizationCC {
|
||||||
|
$ObjectID 4
|
||||||
|
Version "1.6.0"
|
||||||
|
Array {
|
||||||
|
Type "Cell"
|
||||||
|
Dimension 7
|
||||||
|
Cell "BooleansAsBitfields"
|
||||||
|
Cell "PassReuseOutputArgsAs"
|
||||||
|
Cell "PassReuseOutputArgsThreshold"
|
||||||
|
Cell "ZeroExternalMemoryAtStartup"
|
||||||
|
Cell "ZeroInternalMemoryAtStartup"
|
||||||
|
Cell "OptimizeModelRefInitCode"
|
||||||
|
Cell "NoFixptDivByZeroProtection"
|
||||||
|
PropName "DisabledProps"
|
||||||
|
}
|
||||||
|
BlockReduction on
|
||||||
|
BooleanDataType on
|
||||||
|
ConditionallyExecuteInputs on
|
||||||
|
InlineParams off
|
||||||
|
UseIntDivNetSlope off
|
||||||
|
InlineInvariantSignals off
|
||||||
|
OptimizeBlockIOStorage on
|
||||||
|
BufferReuse on
|
||||||
|
EnhancedBackFolding off
|
||||||
|
StrengthReduction off
|
||||||
|
EnforceIntegerDowncast on
|
||||||
|
ExpressionFolding on
|
||||||
|
BooleansAsBitfields off
|
||||||
|
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 off
|
||||||
|
NoFixptDivByZeroProtection off
|
||||||
|
EfficientFloat2IntCast off
|
||||||
|
EfficientMapNaN2IntZero on
|
||||||
|
OptimizeModelRefInitCode off
|
||||||
|
LifeSpan "inf"
|
||||||
|
BufferReusableBoundary on
|
||||||
|
SimCompilerOptimization "Off"
|
||||||
|
AccelVerboseBuild off
|
||||||
|
}
|
||||||
|
Simulink.DebuggingCC {
|
||||||
|
$ObjectID 5
|
||||||
|
Version "1.6.0"
|
||||||
|
RTPrefix "error"
|
||||||
|
ConsistencyChecking "none"
|
||||||
|
ArrayBoundsChecking "none"
|
||||||
|
SignalInfNanChecking "none"
|
||||||
|
SignalRangeChecking "none"
|
||||||
|
ReadBeforeWriteMsg "UseLocalSettings"
|
||||||
|
WriteAfterWriteMsg "UseLocalSettings"
|
||||||
|
WriteAfterReadMsg "UseLocalSettings"
|
||||||
|
AlgebraicLoopMsg "warning"
|
||||||
|
ArtificialAlgebraicLoopMsg "warning"
|
||||||
|
SaveWithDisabledLinksMsg "warning"
|
||||||
|
SaveWithParameterizedLinksMsg "warning"
|
||||||
|
CheckSSInitialOutputMsg on
|
||||||
|
UnderspecifiedInitializationDetection "Classic"
|
||||||
|
MergeDetectMultiDrivingBlocksExec "none"
|
||||||
|
CheckExecutionContextPreStartOutputMsg off
|
||||||
|
CheckExecutionContextRuntimeOutputMsg off
|
||||||
|
SignalResolutionControl "UseLocalSettings"
|
||||||
|
BlockPriorityViolationMsg "warning"
|
||||||
|
MinStepSizeMsg "warning"
|
||||||
|
TimeAdjustmentMsg "none"
|
||||||
|
MaxConsecutiveZCsMsg "error"
|
||||||
|
SolverPrmCheckMsg "warning"
|
||||||
|
InheritedTsInSrcMsg "warning"
|
||||||
|
DiscreteInheritContinuousMsg "warning"
|
||||||
|
MultiTaskDSMMsg "error"
|
||||||
|
MultiTaskCondExecSysMsg "error"
|
||||||
|
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 "Use local settings"
|
||||||
|
SignalLabelMismatchMsg "none"
|
||||||
|
UnconnectedInputMsg "warning"
|
||||||
|
UnconnectedOutputMsg "warning"
|
||||||
|
UnconnectedLineMsg "warning"
|
||||||
|
SFcnCompatibilityMsg "none"
|
||||||
|
UniqueDataStoreMsg "none"
|
||||||
|
BusObjectLabelMismatch "warning"
|
||||||
|
RootOutportRequireBusObject "warning"
|
||||||
|
AssertControl "UseLocalSettings"
|
||||||
|
EnableOverflowDetection off
|
||||||
|
ModelReferenceIOMsg "none"
|
||||||
|
ModelReferenceVersionMismatchMessage "none"
|
||||||
|
ModelReferenceIOMismatchMessage "none"
|
||||||
|
ModelReferenceCSMismatchMessage "none"
|
||||||
|
UnknownTsInhSupMsg "warning"
|
||||||
|
ModelReferenceDataLoggingMessage "warning"
|
||||||
|
ModelReferenceSymbolNameMessage "warning"
|
||||||
|
ModelReferenceExtraNoncontSigs "error"
|
||||||
|
StateNameClashWarn "warning"
|
||||||
|
SimStateInterfaceChecksumMismatchMsg "warning"
|
||||||
|
StrictBusMsg "Warning"
|
||||||
|
LoggingUnavailableSignals "error"
|
||||||
|
BlockIODiagnostic "none"
|
||||||
|
}
|
||||||
|
Simulink.HardwareCC {
|
||||||
|
$ObjectID 6
|
||||||
|
Version "1.6.0"
|
||||||
|
ProdBitPerChar 8
|
||||||
|
ProdBitPerShort 16
|
||||||
|
ProdBitPerInt 32
|
||||||
|
ProdBitPerLong 32
|
||||||
|
ProdIntDivRoundTo "Undefined"
|
||||||
|
ProdEndianess "Unspecified"
|
||||||
|
ProdWordSize 32
|
||||||
|
ProdShiftRightIntArith on
|
||||||
|
ProdHWDeviceType "32-bit Generic"
|
||||||
|
TargetBitPerChar 8
|
||||||
|
TargetBitPerShort 16
|
||||||
|
TargetBitPerInt 32
|
||||||
|
TargetBitPerLong 32
|
||||||
|
TargetShiftRightIntArith on
|
||||||
|
TargetIntDivRoundTo "Undefined"
|
||||||
|
TargetEndianess "Unspecified"
|
||||||
|
TargetWordSize 32
|
||||||
|
TargetTypeEmulationWarnSuppressLevel 0
|
||||||
|
TargetPreprocMaxBitsSint 32
|
||||||
|
TargetPreprocMaxBitsUint 32
|
||||||
|
TargetHWDeviceType "Specified"
|
||||||
|
TargetUnknown off
|
||||||
|
ProdEqTarget on
|
||||||
|
}
|
||||||
|
Simulink.ModelReferenceCC {
|
||||||
|
$ObjectID 7
|
||||||
|
Version "1.6.0"
|
||||||
|
UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
|
||||||
|
CheckModelReferenceTargetMessage "error"
|
||||||
|
ModelReferenceNumInstancesAllowed "Multi"
|
||||||
|
ModelReferencePassRootInputsByReference on
|
||||||
|
ModelReferenceMinAlgLoopOccurrences off
|
||||||
|
}
|
||||||
|
Simulink.SFSimCC {
|
||||||
|
$ObjectID 8
|
||||||
|
Version "1.6.0"
|
||||||
|
SFSimEnableDebug on
|
||||||
|
SFSimOverflowDetection on
|
||||||
|
SFSimEcho on
|
||||||
|
SimBlas on
|
||||||
|
SimCtrlC on
|
||||||
|
SimExtrinsic on
|
||||||
|
SimIntegrity on
|
||||||
|
SimUseLocalCustomCode off
|
||||||
|
SimBuildMode "sf_incremental_build"
|
||||||
|
}
|
||||||
|
Simulink.RTWCC {
|
||||||
|
$BackupClass "Simulink.RTWCC"
|
||||||
|
$ObjectID 9
|
||||||
|
Version "1.6.0"
|
||||||
|
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 off
|
||||||
|
GenerateTraceInfo off
|
||||||
|
GenerateTraceReport off
|
||||||
|
GenerateTraceReportSl off
|
||||||
|
GenerateTraceReportSf off
|
||||||
|
GenerateTraceReportEml off
|
||||||
|
GenerateCodeInfo off
|
||||||
|
RTWCompilerOptimization "Off"
|
||||||
|
CheckMdlBeforeBuild "Off"
|
||||||
|
Array {
|
||||||
|
Type "Handle"
|
||||||
|
Dimension 2
|
||||||
|
Simulink.CodeAppCC {
|
||||||
|
$ObjectID 10
|
||||||
|
Version "1.6.0"
|
||||||
|
Array {
|
||||||
|
Type "Cell"
|
||||||
|
Dimension 19
|
||||||
|
Cell "IgnoreCustomStorageClasses"
|
||||||
|
Cell "IgnoreTestpoints"
|
||||||
|
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 "CustomSymbolStrFcnArg"
|
||||||
|
Cell "CustomSymbolStrBlkIO"
|
||||||
|
Cell "CustomSymbolStrTmpVar"
|
||||||
|
Cell "CustomSymbolStrMacro"
|
||||||
|
Cell "ReqsInCode"
|
||||||
|
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
|
||||||
|
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
|
||||||
|
SimulinkBlockComments on
|
||||||
|
EnableCustomComments off
|
||||||
|
InlinedPrmAccess "Literals"
|
||||||
|
ReqsInCode off
|
||||||
|
UseSimReservedNames off
|
||||||
|
}
|
||||||
|
Simulink.GRTTargetCC {
|
||||||
|
$BackupClass "Simulink.TargetCC"
|
||||||
|
$ObjectID 11
|
||||||
|
Version "1.6.0"
|
||||||
|
Array {
|
||||||
|
Type "Cell"
|
||||||
|
Dimension 17
|
||||||
|
Cell "GeneratePreprocessorConditionals"
|
||||||
|
Cell "IncludeMdlTerminateFcn"
|
||||||
|
Cell "CombineOutputUpdateFcns"
|
||||||
|
Cell "SuppressErrorStatus"
|
||||||
|
Cell "ERTCustomFileBanners"
|
||||||
|
Cell "GenerateSampleERTMain"
|
||||||
|
Cell "GenerateTestInterfaces"
|
||||||
|
Cell "ModelStepFunctionPrototypeControlCompliant"
|
||||||
|
Cell "CPPClassGenCompliant"
|
||||||
|
Cell "MultiInstanceERTCode"
|
||||||
|
Cell "PurelyIntegerCode"
|
||||||
|
Cell "SupportNonFinite"
|
||||||
|
Cell "SupportComplex"
|
||||||
|
Cell "SupportAbsoluteTime"
|
||||||
|
Cell "SupportContinuousTime"
|
||||||
|
Cell "SupportNonInlinedSFcns"
|
||||||
|
Cell "PortableWordSizes"
|
||||||
|
PropName "DisabledProps"
|
||||||
|
}
|
||||||
|
TargetFcnLib "ansi_tfl_table_tmw.mat"
|
||||||
|
TargetLibSuffix ""
|
||||||
|
TargetPreCompLibLocation ""
|
||||||
|
TargetFunctionLibrary "ANSI_C"
|
||||||
|
UtilityFuncGeneration "Auto"
|
||||||
|
ERTMultiwordTypeDef "System defined"
|
||||||
|
ERTMultiwordLength 256
|
||||||
|
MultiwordLength 2048
|
||||||
|
GenerateFullHeader on
|
||||||
|
GenerateSampleERTMain off
|
||||||
|
GenerateTestInterfaces off
|
||||||
|
IsPILTarget off
|
||||||
|
ModelReferenceCompliant on
|
||||||
|
ParMdlRefBuildCompliant on
|
||||||
|
CompOptLevelCompliant on
|
||||||
|
IncludeMdlTerminateFcn on
|
||||||
|
GeneratePreprocessorConditionals "Disable all"
|
||||||
|
CombineOutputUpdateFcns 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
|
||||||
|
GenerateASAP2 off
|
||||||
|
}
|
||||||
|
PropName "Components"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropName "Components"
|
||||||
|
}
|
||||||
|
Name "Configuration"
|
||||||
|
CurrentDlgPage "Solver"
|
||||||
|
ConfigPrmDlgPosition " [ 280, 124, 1160, 754 ] "
|
||||||
|
}
|
||||||
|
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 Demux
|
||||||
|
Outputs "4"
|
||||||
|
DisplayOption "none"
|
||||||
|
BusSelectionMode off
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Inport
|
||||||
|
Port "1"
|
||||||
|
UseBusObject off
|
||||||
|
BusObject "BusObject"
|
||||||
|
BusOutputAsStruct off
|
||||||
|
PortDimensions "-1"
|
||||||
|
VarSizeSig "Inherit"
|
||||||
|
SampleTime "-1"
|
||||||
|
OutMin "[]"
|
||||||
|
OutMax "[]"
|
||||||
|
DataType "auto"
|
||||||
|
OutDataType "fixdt(1,16,0)"
|
||||||
|
OutScaling "[]"
|
||||||
|
OutDataTypeStr "Inherit: auto"
|
||||||
|
LockScale off
|
||||||
|
SignalType "auto"
|
||||||
|
SamplingMode "auto"
|
||||||
|
LatchByDelayingOutsideSignal off
|
||||||
|
LatchByCopyingInsideSignal off
|
||||||
|
Interpolate on
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Mux
|
||||||
|
Inputs "4"
|
||||||
|
DisplayOption "none"
|
||||||
|
UseBusObject off
|
||||||
|
BusObject "BusObject"
|
||||||
|
NonVirtualBus off
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Port "1"
|
||||||
|
UseBusObject off
|
||||||
|
BusObject "BusObject"
|
||||||
|
BusOutputAsStruct off
|
||||||
|
PortDimensions "-1"
|
||||||
|
VarSizeSig "Inherit"
|
||||||
|
SampleTime "-1"
|
||||||
|
OutMin "[]"
|
||||||
|
OutMax "[]"
|
||||||
|
DataType "auto"
|
||||||
|
OutDataType "fixdt(1,16,0)"
|
||||||
|
OutScaling "[]"
|
||||||
|
OutDataTypeStr "Inherit: auto"
|
||||||
|
LockScale off
|
||||||
|
SignalType "auto"
|
||||||
|
SamplingMode "auto"
|
||||||
|
SourceOfInitialOutputValue "Dialog"
|
||||||
|
OutputWhenDisabled "held"
|
||||||
|
InitialOutput "[]"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType StateSpace
|
||||||
|
A "1"
|
||||||
|
B "1"
|
||||||
|
C "1"
|
||||||
|
D "1"
|
||||||
|
X0 "0"
|
||||||
|
AbsoluteTolerance "auto"
|
||||||
|
ContinuousStateAttributes "''"
|
||||||
|
Realization "auto"
|
||||||
|
}
|
||||||
|
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"
|
||||||
|
MinMaxOverflowLogging "UseLocalSettings"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System {
|
||||||
|
Name "Grue_L"
|
||||||
|
Location [378, 114, 1308, 624]
|
||||||
|
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 286
|
||||||
|
Block {
|
||||||
|
BlockType SubSystem
|
||||||
|
Name "Grue_L"
|
||||||
|
SID 278
|
||||||
|
Ports [2, 6]
|
||||||
|
Position [405, 96, 540, 249]
|
||||||
|
MinAlgLoopOccurrences off
|
||||||
|
PropExecContextOutsideSubsystem off
|
||||||
|
RTWSystemCode "Auto"
|
||||||
|
FunctionWithSeparateData off
|
||||||
|
Opaque off
|
||||||
|
RequestExecContextInheritance off
|
||||||
|
MaskHideContents off
|
||||||
|
System {
|
||||||
|
Name "Grue_L"
|
||||||
|
Location [713, 179, 1248, 430]
|
||||||
|
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"
|
||||||
|
Block {
|
||||||
|
BlockType Inport
|
||||||
|
Name "Delta F"
|
||||||
|
SID 281
|
||||||
|
Position [30, 98, 60, 112]
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Inport
|
||||||
|
Name "Delta C"
|
||||||
|
SID 284
|
||||||
|
Position [25, 148, 55, 162]
|
||||||
|
Port "2"
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Demux
|
||||||
|
Name "Demux1"
|
||||||
|
SID 236
|
||||||
|
Ports [1, 6]
|
||||||
|
Position [295, 28, 300, 227]
|
||||||
|
ShowName off
|
||||||
|
Outputs "6"
|
||||||
|
DisplayOption "bar"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Mux
|
||||||
|
Name "Mux1"
|
||||||
|
SID 233
|
||||||
|
Ports [2, 1]
|
||||||
|
Position [95, 81, 100, 179]
|
||||||
|
ShowName off
|
||||||
|
Inputs "2"
|
||||||
|
DisplayOption "bar"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType StateSpace
|
||||||
|
Name "Syst. linéaire"
|
||||||
|
SID 232
|
||||||
|
Position [160, 113, 220, 147]
|
||||||
|
A "[0 0 0 1 0 0 ; 0 0 0 0 1 0 ; 0 0 0 0 0 1 ; 0 0 m*g/Mc -Cd/Mc 0 0 ; 0 0 0 0 -Cr/(b^2*(J/b^2+m)) 0 ; 0 0 -g/R*"
|
||||||
|
"(1+m/Mc) Cd/(Mc*R) 0 0]"
|
||||||
|
B "[0 0 ; 0 0 ; 0 0 ; 1/Mc 0 ; 0 -1/(b*(J/b^2+m)) ; -1/(R*Mc) 0 ];"
|
||||||
|
C "eye(6)"
|
||||||
|
D "zeros(6,2)"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Name "Delta d"
|
||||||
|
SID 279
|
||||||
|
Position [480, 33, 510, 47]
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Name "Delta r"
|
||||||
|
SID 280
|
||||||
|
Position [445, 68, 475, 82]
|
||||||
|
Port "2"
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Name "Delta theta"
|
||||||
|
SID 282
|
||||||
|
Position [415, 103, 445, 117]
|
||||||
|
Port "3"
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Name "Delta d'"
|
||||||
|
SID 283
|
||||||
|
Position [380, 138, 410, 152]
|
||||||
|
Port "4"
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Name "Delta r'"
|
||||||
|
SID 285
|
||||||
|
Position [350, 173, 380, 187]
|
||||||
|
Port "5"
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Block {
|
||||||
|
BlockType Outport
|
||||||
|
Name "Delta theta'"
|
||||||
|
SID 286
|
||||||
|
Position [320, 208, 350, 222]
|
||||||
|
Port "6"
|
||||||
|
IconDisplay "Port number"
|
||||||
|
OutDataType "fixdt(1, 16)"
|
||||||
|
OutScaling "2^0"
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Mux1"
|
||||||
|
SrcPort 1
|
||||||
|
DstBlock "Syst. linéaire"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Delta F"
|
||||||
|
SrcPort 1
|
||||||
|
DstBlock "Mux1"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Syst. linéaire"
|
||||||
|
SrcPort 1
|
||||||
|
DstBlock "Demux1"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Delta C"
|
||||||
|
SrcPort 1
|
||||||
|
DstBlock "Mux1"
|
||||||
|
DstPort 2
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Demux1"
|
||||||
|
SrcPort 1
|
||||||
|
DstBlock "Delta d"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Demux1"
|
||||||
|
SrcPort 2
|
||||||
|
DstBlock "Delta r"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Demux1"
|
||||||
|
SrcPort 3
|
||||||
|
DstBlock "Delta theta"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Demux1"
|
||||||
|
SrcPort 4
|
||||||
|
DstBlock "Delta d'"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Demux1"
|
||||||
|
SrcPort 5
|
||||||
|
DstBlock "Delta r'"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
Line {
|
||||||
|
SrcBlock "Demux1"
|
||||||
|
SrcPort 6
|
||||||
|
DstBlock "Delta theta'"
|
||||||
|
DstPort 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
424-Systeme_Non_Lineaires/TP2/Grue_L.slxc
Normal file
3720
424-Systeme_Non_Lineaires/TP2/Grue_NL.mdl
Normal file
2563
424-Systeme_Non_Lineaires/TP2/Grue_NL.mdl.r2009b
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/Grue_NL.slxc
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/Grue_NL_corrL.slx
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/Grue_NL_corrNL.slx
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/Grue_NL_corrNL.slx.autosave
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/Grue_NL_corrNL.slxc
Normal file
120
424-Systeme_Non_Lineaires/TP2/Ini_Grue.m
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
% Ce script permet de d<EFBFBD>clarer les valeurs des param<EFBFBD>tres du mod<EFBFBD>le
|
||||||
|
% Il sert aussi <EFBFBD> d<EFBFBD>clarer et <EFBFBD> calculer les diff<EFBFBD>rentes variables
|
||||||
|
% de commande tout au long du TP (Exemples : Point de fonctionnement,
|
||||||
|
% trajectoire, commande <EFBFBD> grand gain, ...
|
||||||
|
clear, clc,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%% Param<EFBFBD>tres :
|
||||||
|
m = 500; %kg
|
||||||
|
Mc = 5000; %kg
|
||||||
|
g = 10; %m/s^2
|
||||||
|
J = 50; %kg.m^2
|
||||||
|
b = 0.4; %m
|
||||||
|
Cd = 20; %kg/s
|
||||||
|
Cr = 20; %kg.m^2/s
|
||||||
|
|
||||||
|
%% Point de fonctionnement
|
||||||
|
R = 10;
|
||||||
|
D = 0;
|
||||||
|
C0 = m*g*b;
|
||||||
|
F = 0;
|
||||||
|
|
||||||
|
%% Trajectoire
|
||||||
|
Rini = R;
|
||||||
|
Dini = 0;
|
||||||
|
Rfin = 5;
|
||||||
|
Dfin = 20;
|
||||||
|
zh = 1;
|
||||||
|
dt = 10;
|
||||||
|
%% Manip 1
|
||||||
|
A = [0 0 0 1 0 0 ;
|
||||||
|
0 0 0 0 1 0 ;
|
||||||
|
0 0 0 0 0 1 ;
|
||||||
|
0 0 m*g/Mc -Cd/Mc 0 0 ;
|
||||||
|
0 0 0 0 -Cr/(b^2*(J/b^2+m)) 0 ;
|
||||||
|
0 0 -g/R*(1+m/Mc) Cd/(Mc*R) 0 0];
|
||||||
|
|
||||||
|
B = [0 0 ;
|
||||||
|
0 0 ;
|
||||||
|
0 0 ;
|
||||||
|
1/Mc 0 ;
|
||||||
|
0 -1/(b*(J/b^2+m)) ;
|
||||||
|
-1/(R*Mc) 0 ];
|
||||||
|
C= eye(6);
|
||||||
|
Com = [B A*B A^2*B A^3*B A^4*B A^5*B];
|
||||||
|
rank(Com)
|
||||||
|
|
||||||
|
%% Manip 2
|
||||||
|
|
||||||
|
vprA = damp(eig(A)); % valeur propres de A
|
||||||
|
omega0 = vprA(2);
|
||||||
|
xi = 0.5
|
||||||
|
i=complex(0,1);
|
||||||
|
p1 = omega0*(-xi+ i *sqrt(1-xi^2));
|
||||||
|
p2 = omega0*(-xi- i *sqrt(1-xi^2));
|
||||||
|
p = [-2 -2.5 -3 -4 p1 p2];
|
||||||
|
|
||||||
|
|
||||||
|
K = place(A,B,p)
|
||||||
|
C_1 =C(1,:);
|
||||||
|
B_1 =B(:,1);
|
||||||
|
|
||||||
|
eta = -1/(C_1*(A-B*K)^-1*B_1);
|
||||||
|
|
||||||
|
%%
|
||||||
|
sys = ss(A-B*K,B(:,2),C(2,:),D)
|
||||||
|
H = tf(sys)
|
||||||
|
bode(H)
|
||||||
|
% margin(H)
|
||||||
|
% Avec le correcteur intégral :
|
||||||
|
Ti = 5e-4
|
||||||
|
CI = tf(1,[-Ti 0]); % négatif pour avoir une phase >180
|
||||||
|
%bode(H,CI*H,'grid')
|
||||||
|
fig =figure();
|
||||||
|
margin(CI*H)
|
||||||
|
grid on;
|
||||||
|
saveas(fig,"manip_5marge.png");
|
||||||
|
|
||||||
|
%% pretty figure
|
||||||
|
% plot(simout)
|
||||||
|
% legend("d","r","\theta","d d/dt","dr/dt","d\theta/dt");
|
||||||
|
% grid on;
|
||||||
|
%% Commande grand gain
|
||||||
|
Deltat= 10
|
||||||
|
Dini = 0;
|
||||||
|
Rini = 10;
|
||||||
|
Dfin = 20;
|
||||||
|
Rfin = 5;
|
||||||
|
ed = omega0/10;
|
||||||
|
er = ed;
|
||||||
|
|
||||||
|
coeff_phi = [6/Deltat^5 -15/Deltat^4 10/Deltat^3 0 0 0]
|
||||||
|
|
||||||
|
|
||||||
|
%%
|
||||||
|
close all;
|
||||||
|
fig= figure()
|
||||||
|
plot(Dc)
|
||||||
|
hold on
|
||||||
|
plot(simout.Time, simout.Data(:,1));
|
||||||
|
xlabel('temps (s)');
|
||||||
|
grid on;
|
||||||
|
title('Vérification de la planification de trajectoire');
|
||||||
|
legend('d_c','d');
|
||||||
|
|
||||||
|
fig2= figure()
|
||||||
|
plot(Rc)
|
||||||
|
hold on
|
||||||
|
plot(simout.Time, simout.Data(:,2));
|
||||||
|
xlabel('temps (s)');
|
||||||
|
grid on;
|
||||||
|
title('Vérification de la planification de trajectoire');
|
||||||
|
legend('r_c','r');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
424-Systeme_Non_Lineaires/TP2/NL_correcL.fig
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/NL_correcL.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/NL_correcL1.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/NL_correcL10.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/NL_correcL100.png
Normal file
After Width: | Height: | Size: 16 KiB |
518
424-Systeme_Non_Lineaires/TP2/TP2.tex
Normal file
|
@ -0,0 +1,518 @@
|
||||||
|
\documentclass[10pt,a4paper,notitlepage]{article}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage[french]{babel}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{mathtools}
|
||||||
|
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{float}
|
||||||
|
\usepackage{subcaption}
|
||||||
|
\usepackage{tikz}
|
||||||
|
|
||||||
|
\usepackage{siunitx}
|
||||||
|
\usepackage{numprint}
|
||||||
|
|
||||||
|
\addto{\captionsfrench}{\renewcommand{\abstractname}{Introduction}}
|
||||||
|
|
||||||
|
\author{Pierre-Antoine Comby}
|
||||||
|
\title{TP1 : Commande d'un bras à liaison flexible par bouclage linéarisant}
|
||||||
|
|
||||||
|
\input{/home/pac/Scripts/Raccourcis.tex}
|
||||||
|
\renewcommand{\R}{\mathbb{R}}
|
||||||
|
\renewcommand{\Z}{\mathbb{Z}}
|
||||||
|
\renewcommand{\vec}{\overrightarrow}
|
||||||
|
\usepackage{minted}
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
\section{Modélisation}
|
||||||
|
\paragraph{Prépa.1}
|
||||||
|
\begin{itemize}
|
||||||
|
\item On applique le PFD au chariot \{1\}de masse $M_c$:
|
||||||
|
\begin{equation}
|
||||||
|
M_c\vec{a_{\{1\}}} = \vec{F}+\vec{T}-C_d\vec{v_{\{1\}}}+M_c\vec{g}
|
||||||
|
\end{equation}
|
||||||
|
Soit en projetant:
|
||||||
|
\begin{equation}
|
||||||
|
M_c \ddot{d} = F+T\sin(\theta)-C_d\dot{d}
|
||||||
|
\end{equation}
|
||||||
|
\item On fait de meme pour la masse pendulaire \{2\} $m$:
|
||||||
|
\begin{equation}
|
||||||
|
m \vec{a_{\{2\}}} = -\vec{T} +m \vec{g}
|
||||||
|
\end{equation}
|
||||||
|
et il vient directement:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
m\ddot{x} = -T\sin(\theta)\\
|
||||||
|
m\ddot{z} = -T\cos(\theta)+mg
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
\item et un théorème du moment cinétique sur l'arbre donne (avec $\alpha$ angle du tambour par rapport au chariot):
|
||||||
|
\begin{equation}
|
||||||
|
J\ddot{\alpha} = -C +bT-C_r \dot{\alpha}
|
||||||
|
\end{equation}
|
||||||
|
soit :
|
||||||
|
\begin{equation}
|
||||||
|
J \frac{\ddot{r}}{b} = -C+bT -C_r \frac{\dot{r}}{b}
|
||||||
|
\end{equation}
|
||||||
|
\end{itemize}
|
||||||
|
\paragraph{Prépa.2}
|
||||||
|
Comme $b\ll r$ on a :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
x = r\sin\theta+d\\
|
||||||
|
z = r\cos\theta
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
soit :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
\dot{x} = \dot{r}\sin\theta + r\dot{\theta}\cos\theta +\dot{d}\\
|
||||||
|
\dot{z} = \dot{r}\cos\theta -r\dot{\theta}\sin\theta
|
||||||
|
\end{cases}
|
||||||
|
\quad\text{ et }\quad
|
||||||
|
\begin{cases}
|
||||||
|
\ddot{x} = \ddot{r}\sin\theta+2\dot{r}\dot{\theta}\cos\theta+r\ddot{\theta}\cos\theta- r\dot{\theta}^2\sin\theta+\ddot{d}\\
|
||||||
|
\ddot{z} = \ddot{r}\cos\theta-2\dot{r}\dot{\theta}\sin\theta-r\ddot{\theta}\sin\theta-r\dot{\theta}^2\cos\theta
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
\paragraph{Prépa.3} en remplacant dans le système (1) donné dans l'énoncé on trouve:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
m(
|
||||||
|
\ddot{r} \sin\theta+2\dot{r}\dot{\theta}\cos\theta+r\ddot{\theta}\cos\theta-r\dot{\theta}^2\sin\theta+\ddot{d}
|
||||||
|
) &=-T\sin\theta\\
|
||||||
|
m(
|
||||||
|
\ddot{r}\cos{\theta}-2\dot{r}\dot{\theta}\sin\theta-r\ddot{\theta}\sin\theta-r\dot{\theta}^2\cos\theta
|
||||||
|
) &= - T\cos\theta+ mg
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
A partir des identités trigonométrique on a :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
m\ddot{r} &= - m\ddot{d}\sin\theta+mr\dot{\theta}^2 -T + mg \cos{\theta}\\
|
||||||
|
r \ddot{\theta} &= -\ddot{d}\cos\theta-2\dot{r}\dot{\theta}-g\sin\theta
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
\paragraph{Prépa.4}
|
||||||
|
Des équations précédentes on en déduit le modèle d'état( en remplacant l'expression de $T$ par celle déduite de la prépa.3):
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
M_c\ddot{d} &= F +T \sin\theta-C_d\dot{d}\\
|
||||||
|
r\ddot{\theta} &= -\ddot{d}\cos\theta-2\dot{r}\dot{\theta}-g\sin(\theta)\\
|
||||||
|
(m+\frac{J}{b^2})\ddot{r} = -\frac{C}{b}-\frac{C_r\dot{r}}{b^2}-m\ddot{d}\sin\theta-mr\dot{\theta}^2+mg\cos{\theta}
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\paragraph{Prépa.5}
|
||||||
|
On linéarise autour de $d=D$,$r=R$,$\theta=0$, $T=mg$,$F=0$,$C=mbg$:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
M_{c}(\Delta d+D) &=(\Delta F)+T \sin (\Delta \theta)-C_{d}(\Delta d+D) \\(\Delta r+R)(\Delta \theta) &=-(\Delta d+D) \cos (\Delta \theta)-2(\Delta r+R)(\Delta \theta)-g \sin (\Delta \theta) \\\left(m+\frac{J}{b^{2}}\right)(\Delta r+R) &=-\frac{\Delta C+m g b}{b}-\frac{C_{r}(\Delta r+R)}{b^{2}}-m(\Delta d+D) \sin (\Delta \theta)-m(\Delta r+R)(\Delta \theta)^{2}+m g \cos (\Delta \theta)
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
En faisant une approximation au 1er ordre on a:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
M_{c} \Delta d &=\Delta F+m g \Delta \theta-C_{d} \Delta d \\
|
||||||
|
R \Delta \theta+\Delta d &=-g \Delta \theta \\
|
||||||
|
\left(m+\frac{J}{b^{2}}\right) \ddot{\Delta r} &=-\frac{\Delta C+m g b}{b}-\frac{C_{r} \Delta r}{b^{2}}-m g \Delta \theta
|
||||||
|
\end{cases}
|
||||||
|
\implies
|
||||||
|
\begin{cases} M_{c} \ddot{\Delta} d &=\Delta F+m g \Delta \theta-C_{d} \dot{\Delta} d \\
|
||||||
|
R \Delta \theta+\Delta d &=-g \Delta \theta \\
|
||||||
|
\left(m+\frac{J}{b^{2}}\right) \ddot{\Delta r} &=-\frac{\Delta C}{b}-\frac{C_{r} \Delta r}{b^{2}}
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
On en deduit le modèle d'état linéarisé:
|
||||||
|
\[
|
||||||
|
\deriv{t}\vect{\Delta d \\ \Delta r \\ \Delta\theta \\ \dot{\Delta d}\\ \dot{\Delta r}\\ \dot{\Delta \theta}} =
|
||||||
|
\left[ \begin{array}{cccccc}
|
||||||
|
{0} & {0} & {0} & {1} & {0} & {0} \\
|
||||||
|
{0} & {0} & {0} & {0} & {1} & {0} \\
|
||||||
|
{0} & {0} & {0} & {0} & {0} & {1} \\
|
||||||
|
{0} & {0} & {\frac{m g}{M_{c}}} & {-\frac{C_{d}}{M_{c}}} & {0} & {0} \\
|
||||||
|
{0} & {0} & {0} & {0} & {-\frac{C_{r}}{J+m b^{2}}} & {0} \\
|
||||||
|
{0} & {0} & {-\left(1+\frac{m}{M c}\right) \frac{g}{R}} & {\frac{C_{d}}{R M_{c}}} & {0} & {0}
|
||||||
|
\end{array}\right] \cdot
|
||||||
|
\left[ \begin{array}{c}{\Delta d} \\ {\Delta r} \\ {\Delta \theta} \\ {\Delta d} \\ {\Delta r} \\ {\Delta \theta}\end{array}\right]+
|
||||||
|
\left[ \begin{array}{ccc}{0} & {0} \\ {0} & {0} \\ {0} & {0} \\ {\frac{1}{M_{c}}} & {0} \\ {0} & {-\frac{1}{\frac{J}{b}+m b^{2}}} \\ {-\frac{1}{R M_{c}}} & {0}\end{array}\right]
|
||||||
|
\cdot \left[ \begin{array}{c}{\Delta F} \\ {\Delta C}\end{array}\right]
|
||||||
|
\]
|
||||||
|
|
||||||
|
\section{Commande linéaire}
|
||||||
|
\paragraph{Manip.1}
|
||||||
|
Dans le cas linéaire on construit la matrce de Kallman :
|
||||||
|
\[
|
||||||
|
\mathcal{C} = \vect{B & AB & A^2B & A^5B }
|
||||||
|
\]
|
||||||
|
avec la fonction matlab \texttt{rank(Com)} on vérifie que le système est bien commandable.
|
||||||
|
\begin{minted}{matlab}
|
||||||
|
A = [0 0 0 1 0 0 ;
|
||||||
|
0 0 0 0 1 0 ;
|
||||||
|
0 0 0 0 0 1 ;
|
||||||
|
0 0 m*g/Mc -Cd/Mc 0 0 ;
|
||||||
|
0 0 0 0 -Cr/(b^2*(J/b^2+m)) 0 ;
|
||||||
|
0 0 -g/R*(1+m/Mc) Cd/(Mc*R) 0 0];
|
||||||
|
B = [0 0 ;
|
||||||
|
0 0 ;
|
||||||
|
0 0 ;
|
||||||
|
1/Mc 0 ;
|
||||||
|
0 -1/(b*(J/b^2+m)) ;
|
||||||
|
-1/(R*Mc) 0 ];
|
||||||
|
Com = [B A*B A^2*B A^3*B A^4*B A^5*B];
|
||||||
|
rank(Com)
|
||||||
|
\end{minted}
|
||||||
|
On a un rang de 6, le système linéaire est bien commandable.
|
||||||
|
\paragraph{Manip.2}
|
||||||
|
avec la fonction \texttt{damp(eig(A))} on trouve les valeurs propres et constantes de temps de la matrice d'état
|
||||||
|
\begin{table}[H]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}[t]{llll}
|
||||||
|
\hline
|
||||||
|
{\bf Pole} & {\bf Damping} & {\bf Time Constant} & \\
|
||||||
|
\hline
|
||||||
|
& & {(rad/TimeUnit)} & {(TimeUnit)} \\
|
||||||
|
|
||||||
|
0.00e+00 & -1.00e+00 & 0.00e+00 & Inf \\
|
||||||
|
-1.82e-04 + 1.48e+00i & 1.23e-04 & 1.48e+00 & 5.50e+03 \\
|
||||||
|
-1.82e-04 - 1.48e+00i & 1.23e-04 & 1.48e+00 & 5.50e+03 \\
|
||||||
|
-3.64e-03 & 1.00e+00 & 3.64e-03 & 2.75e+02 \\
|
||||||
|
0.00e+00 & -1.00e+00 & 0.00e+00 & Inf \\
|
||||||
|
-1.54e-01 & 1.00e+00 & 1.54e-01 & 6.50e+00 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\caption{Valeur propre et pulsation caractéristique}
|
||||||
|
\end{table}
|
||||||
|
On a donc la pulsation propre du système : $\omega_0$= \SI{1.48}{rad/s}. On choisi alors d'imposer les poles suivant, (d'après le cahier des charges) en ammortissant le pole double conjugué principal:
|
||||||
|
\[
|
||||||
|
p_{1,2} = \omega_0(\xi\pm j \sqrt{1-\xi^2}) = 1.48(0.5\pm \sqrt{1-0.5^2})
|
||||||
|
\]
|
||||||
|
\begin{minted}{matlab}
|
||||||
|
|
||||||
|
vprA = damp(eig(A)); % valeur propres de A
|
||||||
|
omega0 = vprA(2);
|
||||||
|
xi = 0.5
|
||||||
|
i=complex(0,1);
|
||||||
|
p1 = omega0*(xi+ i *sqrt(1-xi^2));
|
||||||
|
p2 = omega0*(xi- i *sqrt(1-xi^2));
|
||||||
|
p = [-2 -2.5 -3 -4 p1 p2];
|
||||||
|
|
||||||
|
K = place(A,B,p)
|
||||||
|
|
||||||
|
\end{minted}
|
||||||
|
\[K = 10^{5}\cdot
|
||||||
|
\begin{bmatrix}
|
||||||
|
|
||||||
|
0.4288 & 0.1360 & 2.2614 & 0.0215 & 0.0506 & -0.9539 \\
|
||||||
|
-0.0035 & -0.0261 & -0.0026 & 0.0019 & -0.0182 & 0.0195 \\
|
||||||
|
|
||||||
|
\end{bmatrix}\]
|
||||||
|
\paragraph{Manip.3}
|
||||||
|
Pour le terme de précommande, si l'on veux un gain statique unitaire, il faut\footnote{cf UE 421}:
|
||||||
|
\[
|
||||||
|
\eta =\frac{-1}{C_1(A-BK)^{-1}B_1} = 4.1039. 10^{4}
|
||||||
|
\]
|
||||||
|
Avec $C_1$ et $B_1$ lignes et colonnes des matrices $C$ et $B$ propre à $\Delta d$
|
||||||
|
\paragraph{Manip.4} L'ajout d'une composante intégrale va rendre notre système précis. On construit alors la fonction de transfert grace à MATLAB:
|
||||||
|
\begin{minted}{matlab}
|
||||||
|
sys = ss( A-B*K,B(:,2),C(2,:), 0 );
|
||||||
|
H = tf(sys);
|
||||||
|
bode(H);
|
||||||
|
\end{minted}
|
||||||
|
On obtient le diagramme de bode suivant:
|
||||||
|
\begin{figure}[ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{manip_5_bode.png}
|
||||||
|
\caption{Diagramme de bode système en boucle ouverte}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{figure}
|
||||||
|
\paragraph{Manip.5}
|
||||||
|
La marge de phase est nulle, on met en place un correcteur intégrale pur qui apporte stabilité et précission au système:
|
||||||
|
|
||||||
|
\begin{minted}{matlab}
|
||||||
|
Ti = 4e-4
|
||||||
|
CI = tf(1,[-Ti 0]); % négatif pour avoir une phase >180
|
||||||
|
%bode(H,CI*H,'grid')
|
||||||
|
figure();
|
||||||
|
margin(CI*H)
|
||||||
|
\end{minted}
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.7\textwidth]{manip_5marge.png}
|
||||||
|
\caption{Marge de Phase et Gain pour $T_i=4.10^{-4}$}
|
||||||
|
\label{fig:margin}
|
||||||
|
\end{figure}
|
||||||
|
sur la figure\ref{fig:margin} on relève une marge de phase de 50$^o$ , le cahier des charge est respecté.
|
||||||
|
|
||||||
|
\begin{figure}[ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{bouclage_modele_L.png}
|
||||||
|
\caption{Modèle Linéaire compléter par le correcteru par retour d'état.}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\paragraph{Manip.6}
|
||||||
|
Avec une commande $\Delta d_c = 20$m on obtient la figure suivante:
|
||||||
|
\begin{figure}[ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.7\textwidth]{manip6_20.png}
|
||||||
|
\caption{sortie du système pour une commande de 20m}
|
||||||
|
\label{fig:gain20}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
On remarque que le système n'est plus précis, il faut recaler le gain, ici manuellement, pour obtenir un système précis.
|
||||||
|
On atteint les limites du modèle linéaire, pour des commandes plus grande ou plus complexe il va falloir tenir compte des non-linéarités du système.
|
||||||
|
|
||||||
|
\paragraph{Manip.7}
|
||||||
|
On applique le correcteur au modèle non linéaire, en ayant recentrer le
|
||||||
|
retourd'état autour de son point de fonctionnement.
|
||||||
|
On obtient une sortie chaotique, mais douce. comme on peux le voir sur la figure \ref{fig:dc_var}
|
||||||
|
\paragraph{Manip.8}
|
||||||
|
Un changement de consigne apporte un comportement différents :
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth]{NL_correcL10.png}
|
||||||
|
\caption{$d_c=10$}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\linewidth]{NL_correcL100.png}
|
||||||
|
\caption{$d_c=100$}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{subfigure}\\
|
||||||
|
\begin{subfigure}{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\linewidth]{NL_correcL1.png}
|
||||||
|
\caption{$d_c=1$}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{différentes sorties pour des consignes différentes}
|
||||||
|
\label{fig:dc_var}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\section{Commande non linéaire hiérarchisante}
|
||||||
|
\subsection{commande à grand gain}
|
||||||
|
\paragraph{Prépa.6} On planifie la trajectoire avec:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{aligned} D_{c}(t) &=(1-\phi(t)) D_{i n i}+\phi(t) D_{f i n} \\
|
||||||
|
R_{c}(t) &=(1-\phi(t)) R_{i n i}+\phi(t) R_{f i n}
|
||||||
|
\end{aligned}
|
||||||
|
\end{equation}
|
||||||
|
Avec les conditions initiales et finales sur les positions
|
||||||
|
$\phi(0)=0 \quad$ et $\quad \phi(\Delta t)=1$
|
||||||
|
et celles sur la vitesse et l'accélération
|
||||||
|
$\forall i=1,2\left.\frac{d^{i} \phi(t)}{d t^{i}}\right|_{t=0}=0 \quad$ et $\quad\left.\frac{d^{i} \phi(t)}{d t^{i}}\right|_{t=\Delta t}=0$
|
||||||
|
On a 6 conditions à respecter, donc on choisit un polynôme de degré 5:
|
||||||
|
\[
|
||||||
|
\phi(t) = a_5 t^5 + a_4 t^4 +a_3 t^3 + a_2 t^2+a_1 t+ a_0
|
||||||
|
\]
|
||||||
|
|
||||||
|
Les conditions initiales imposent $a_0=a_1=a_2 = 0$ on a donc le polynome : $ \phi(t) = a_5 t^5 + a_4 t^4 +a_3 t^3$.
|
||||||
|
Alors :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{aligned} \alpha(\Delta t)=1 & \Rightarrow \quad a_5 \Delta t^{5} \quad+a_4 \Delta t^{4} \quad+a_3 \Delta t^{3}=1 \\
|
||||||
|
\left.\frac{d \alpha(t)}{d t}\right|_{t=\Delta t}=0 & \Rightarrow 5 a_5 \Delta t^{4} \quad+4 a_4 \Delta t^{3}+3 a_3 \Delta t^{2}=0 \\
|
||||||
|
\left.\frac{d^{2} \alpha(t)}{d t^{2}}\right|_{t=\Delta t}=0 & \Rightarrow 20 a_5 \Delta t^{4}+12 a_4 \Delta t^{3}+6 a_3 \Delta t^{2}=0
|
||||||
|
\end{aligned}
|
||||||
|
\end{equation}
|
||||||
|
En résolvant le système on obtient:
|
||||||
|
\[
|
||||||
|
a_5 = \frac{6}{\Delta t^5} ,\quad a_4 = \frac{-15}{\Delta t^4}, \quad a_3 = \frac{10}{\Delta t^3}
|
||||||
|
\]
|
||||||
|
|
||||||
|
\paragraph{Prépa.7} à partir de l'équation (2.4) de l'énoncé on a :
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
\frac{1}{\omega_{0}^{2}}=\frac{R}{g} \Rightarrow \omega_{0}=\sqrt{\frac{g}{R}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\paragraph{Prépa.8} on a les commandes :
|
||||||
|
\begin{equation}
|
||||||
|
F=\frac{M_{c}}{\epsilon_{d}}\left(\dot{D}_{c}-\dot{d}\right) \text{ et } C=-\frac{J / b+m b}{\epsilon_{r}}\left(\dot{R}_{c}-\dot{r}\right)
|
||||||
|
\end{equation}
|
||||||
|
soit le modèle :
|
||||||
|
\begin{equation}
|
||||||
|
\dot{x}=\left[ \begin{array}{c}{\Delta d} \\ {\Delta r} \\ {\frac{m g}{M_{c}} \Delta \theta-\frac{C_{d}}{M_{c}} \Delta d+\frac{1}{\epsilon_{d}}\left(\dot{D}_{c}-\dot{d}\right)} \\ {\frac{-C_{r}}{J+m b^{2}}+\frac{F_{c}-\dot{r}}{\epsilon_{r}}} \\ {\Delta \theta}\end{array}\right]
|
||||||
|
\end{equation}
|
||||||
|
D'où :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{aligned}
|
||||||
|
\ddot{\Delta d} &=-\left(\frac{C_{d}}{M_{c}}+\frac{1}{\epsilon_{d}}\right) \Delta d+\frac{\dot{D}_{c}}{\epsilon_{d}}+\frac{m g}{M_{c}} \Delta \theta \\
|
||||||
|
\ddot{\Delta r} &=-\left(\frac{C_{r}}{J+m b^{2}}+\frac{1}{\epsilon_{r}}\right) \Delta r+\frac{\dot{R}_{c}}{\epsilon_{r}} \\
|
||||||
|
\text { On peut poser } \tau_{d} &=\frac{1}{\frac{C_{d}}{M_{c}}+\frac{1}{\epsilon_{d}}} \\
|
||||||
|
\text { et } \tau_{r} &=\frac{1}{\frac{C_{r}}{J+m b^{2}}+\frac{1}{\epsilon_{r}}}
|
||||||
|
\end{aligned}
|
||||||
|
\end{equation}
|
||||||
|
En considérant $\epsilon_d \ll 1 $ et $\epsilon_r <<1 $ on a $\tau_d \simeq \epsilon_d$ et $\tau_r \simeq \epsilon_r$
|
||||||
|
|
||||||
|
\paragraph{Prépa.9}
|
||||||
|
On doit prendre $\epsilon_d$ et $\epsilon_r$ suffisamment petit devant la pulsation du sytème $\omega_0$, pour avoir une commande qui puisse compenser suffisament vite les oscillations du système.
|
||||||
|
\paragraph{Manip.9}
|
||||||
|
On réalise la commande suivante :
|
||||||
|
\begin{figure}[ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\textwidth]{boucleNL.png}
|
||||||
|
\caption{Élaboration de la commande pour la porsuite de trajectoire}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[ht]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\linewidth]{traj_plan_d}
|
||||||
|
\caption{poursuite sur $d$}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\linewidth]{traj_plan_r}
|
||||||
|
\caption{Poursuite sur $r$}
|
||||||
|
\label{fig:label}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Commande en poursuite de trajectoire}
|
||||||
|
\label{fig:pours_traj}
|
||||||
|
\end{figure}
|
||||||
|
sur la figure \ref{fig:pours_traj} on remarque que la poursuite est plutot bien respecté pour $d$, mais celle sur $r$ conduit à un écart final non nul.
|
||||||
|
\paragraph{Manip.10}
|
||||||
|
|
||||||
|
|
||||||
|
\paragraph{Manip.11}
|
||||||
|
\paragraph{Manip.12}
|
||||||
|
\paragraph{Manip.13}
|
||||||
|
|
||||||
|
\subsection{Platitude}
|
||||||
|
\paragraph{Prépa.10}
|
||||||
|
Pour montrer que le systeme est plat, ayant pour sortie plates $(x, z),$ il faut montrer que les états,$d, r, \theta$ et les commandes $F, C$ ne dépendent que des sorties $x, z$ et de leurs derivées.
|
||||||
|
\begin{equation}
|
||||||
|
\left\{
|
||||||
|
\begin{aligned}
|
||||||
|
x &=r \sin \theta+d \\
|
||||||
|
m \ddot{x} &=-T \sin \theta
|
||||||
|
\end{aligned}
|
||||||
|
\right. \Rightarrow d=x+r \frac{m \ddot{x}}{T}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Or on a:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
m \ddot{x}=-T \sin \theta \\
|
||||||
|
m \ddot{z}=-T \cos \theta+m g
|
||||||
|
\end{cases} \Rightarrow T=m \sqrt{\ddot{x}^{2}+(g-\ddot{z})^{2}}
|
||||||
|
\end{equation}
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
x=r \sin \theta+d \\
|
||||||
|
z=r \cos \theta
|
||||||
|
\end{cases} \Rightarrow r^{2}=(x-d)^{2}+z^{2}
|
||||||
|
\end{equation}
|
||||||
|
Soit :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
x-d &=-r \frac{m \ddot{x}}{T} \\
|
||||||
|
r^{2} &=(x-d)^{2}+z^{2}
|
||||||
|
\end{cases} \Rightarrow r^{2}=\frac{z^{2}}{1-\frac{\ddot{x}^{2}}{\vec{x}^{2}+(g-\ddot{z})^{2}}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Or $\theta = \arccos{\frac{z}{r}}$ on a donc :
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
r=\sqrt{\frac{z^{2}}{1-\frac{\ddot{x}^{2}}{\ddot{x}^{2}+(g-\ddot{z})^{2}}},}, d=x+\sqrt{\frac{z^{2}}{(g-\ddot{z})^{2}}} \ddot{x}, \quad \text { et } \theta=\arccos \sqrt{1-\frac{\ddot{x}^{2}}{\ddot{x}^{2}+(g-\ddot{z})^{2}}}
|
||||||
|
\end{equation}
|
||||||
|
Les variables d'états de dépendent donc que des sorties et de leurs dérivées, de même pour la commande
|
||||||
|
\begin{equation}
|
||||||
|
\begin{aligned}
|
||||||
|
C &=b T-C_{r} \frac{\dot{r}}{b}-J \frac{\ddot{r}}{b} \\
|
||||||
|
F &=M_{c} \ddot{d}-T \sin \theta+C_{d} \dot{d}
|
||||||
|
\end{aligned}
|
||||||
|
\end{equation}
|
||||||
|
Le système est plat ,avec le sorties plates $x,z$
|
||||||
|
\paragraph{Prépa.11}
|
||||||
|
Les conditions imposées sont :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
d(t=0) = D_{ini} \\
|
||||||
|
r(t=0) = R_{ini} \\
|
||||||
|
\theta(t=0) = 0
|
||||||
|
\end{cases} \quad\text{ et }\quad
|
||||||
|
\begin{cases}
|
||||||
|
d(t=\Delta t ) = D_{fin} \\
|
||||||
|
r(t=\Delta t ) = R_{fin} \\
|
||||||
|
\theta(t=\Delta t ) = 0
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
Ce qui se transpose aux coordonnées:
|
||||||
|
\begin{equation}
|
||||||
|
\begin{cases}
|
||||||
|
x(t=0) = D_{ini}\\
|
||||||
|
z(t=0) = R_{ini} \\
|
||||||
|
\end{cases} \quad\text{ et }\quad
|
||||||
|
\begin{cases}
|
||||||
|
x(t=\Delta t) = D_{fin}\\
|
||||||
|
z(t=\Delta t) = R_{fin} \\
|
||||||
|
\end{cases}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
On pose donc :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{aligned}
|
||||||
|
x_{c}(t) &=(1-\alpha(t)) D_{i n i}+\alpha(t) D_{f i n} \\
|
||||||
|
z_{c}(t) &=(1-\alpha(t)) R_{i n i}+\alpha(t) R_{f i n}
|
||||||
|
\end{aligned}
|
||||||
|
\end{equation}
|
||||||
|
De manière analogue à la préparation 6 on a les conditions initiales et finales sur les positions et leur dérivées:
|
||||||
|
\[
|
||||||
|
\alpha(0) = 0 ,\quad \alpha(\Delta t) =1, \quad \forall i = 1,2,3\left. \deriv[^i\alpha(t)]{t^i}\right|_{t=0}= 0 \text{ et } \left.\deriv[^i\alpha(t)]{t^i}\right|_{t=\Delta t}= 0
|
||||||
|
\]
|
||||||
|
Pour satisfaire les 8 conditions on choisit un polynome d'ordre 7 :
|
||||||
|
\begin{equation}
|
||||||
|
\alpha(t)=a_{7} t^{7}+a_{6} t^{6}+a_{5} t^{5}+a_{4} t^{4}+a_{3} t^{3}+a_{2} t^{2}+a_{1} t+a_{0}
|
||||||
|
\end{equation}
|
||||||
|
Les conditions initiales imposent $a_0=a_1=a_2=a_3 =0$ et les conditions finales donnent :
|
||||||
|
\begin{equation}
|
||||||
|
\begin{array}{lllllll}
|
||||||
|
\alpha(\Delta t) & =1 & a_7\Delta t^7 & + a_6 \Delta t^6 & + a_5 \Delta t^5 & + a_4 \Delta t^4 & =1 \\
|
||||||
|
\frac{d \alpha(t)}{d t}|t=\Delta t & =0 & 7a_7\Delta t^6 & + 6a_6 \Delta t^5 & 5a_5\Delta t^4 & 4a_4 \Delta t^3 & =0 \\
|
||||||
|
\frac{d^{2} \alpha(t)}{d t^{2}}|_{t=\Delta t} & =0 & 42a_7\Delta t^5 & +30a_6 \Delta t^4 & 20a_5 t^3 & 12a_4\Delta t^2 & =0 \\
|
||||||
|
\frac{d^{3} \alpha(t)}{d t^{3}} |_{t=0} & t=\Delta & 210a_z\Delta t^4 & +120a_6\Delta t^3 & 60a_5 \Delta t^2 & 24a_4\Delta t & =0
|
||||||
|
\end{array}
|
||||||
|
\end{equation}
|
||||||
|
On a donc :
|
||||||
|
\begin{equation}
|
||||||
|
a_{7}=\frac{-20}{\Delta t^{7}}, \quad a_{6}=\frac{70}{\Delta t^{6}}, \quad a_{5}=\frac{-84}{\Delta t^{5}}, \quad a_{4}=\frac{35}{\Delta t^{4}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
\paragraph{Prépa.12}
|
||||||
|
|
||||||
|
On impose une trajectoire parabolique ainsi,au niveau niveau de l'obstacle :$x_c=x_H \implies z_c=z_H$. On pose donc :
|
||||||
|
\[
|
||||||
|
z_c = a(x_c-x_h)^2+z_h
|
||||||
|
\]
|
||||||
|
En évaluant cette expression à la position initiale on a:
|
||||||
|
\[
|
||||||
|
a = \frac{R_{ini}-z_H}{(D_{ini}-x_H)^2}
|
||||||
|
\]
|
||||||
|
Pour déterminer $x_H$ on utilise la position finale et on a:
|
||||||
|
|
||||||
|
\begin{equation}
|
||||||
|
x_{H}=\frac{D_{i n i}+\sqrt{\frac{R_{i n i}-z_{H}}{R_{i n i}-z_{H}}} D_{f i n}}%
|
||||||
|
{1+\sqrt{\frac{R_{i n i}-z_{H}}{R_{f i n}-z_{H}}}}
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
||||||
|
|
||||||
|
%%% Local Variables:
|
||||||
|
%%% mode: latex
|
||||||
|
%%% TeX-master: t
|
||||||
|
%%% End:
|
BIN
424-Systeme_Non_Lineaires/TP2/auto/TP2.elc
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/bouclageLNL.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/bouclage_modele_L
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/bouclage_modele_L.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/boucleNL.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/manip6_20.fig
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/manip6_20.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/manip_5_bode.fig
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/manip_5_bode.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/manip_5marge.fig
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/manip_5marge.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/output_bouclage_lin.fig
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
||||||
|
<slcache.FileAttributes type="slcache.FileAttributes" uuid="02b42ec4-8262-4cdf-8404-6ec18ebf6993">
|
||||||
|
<checksum>YrPnK1+qVi+dpkugiky1xg==</checksum>
|
||||||
|
</slcache.FileAttributes>
|
||||||
|
</MF0>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
||||||
|
<slcache.FileAttributes type="slcache.FileAttributes" uuid="c095d378-44e2-40de-b158-a41c98d691f3">
|
||||||
|
<checksum>LXyRdIdx04BZS3zSK92ryw==</checksum>
|
||||||
|
</slcache.FileAttributes>
|
||||||
|
</MF0>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
||||||
|
<slcache.FileAttributes type="slcache.FileAttributes" uuid="c7869f89-1547-44ce-8ac9-276c254a63a4">
|
||||||
|
<checksum>D6xWcyOKDYRnjDVQkSZhsg==</checksum>
|
||||||
|
</slcache.FileAttributes>
|
||||||
|
</MF0>
|
BIN
424-Systeme_Non_Lineaires/TP2/traj_plan.fig
Normal file
BIN
424-Systeme_Non_Lineaires/TP2/traj_plan.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/traj_plan_d.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
424-Systeme_Non_Lineaires/TP2/traj_plan_r.png
Normal file
After Width: | Height: | Size: 12 KiB |