ajout TP2 424

This commit is contained in:
Pierre-antoine Comby 2019-04-24 00:15:19 +02:00
parent 45383b8f26
commit 3fa29d5ab3
42 changed files with 9536 additions and 0 deletions

File diff suppressed because it is too large Load diff

View 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
}
}
}
}
}

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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');

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

View 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>

View 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="c095d378-44e2-40de-b158-a41c98d691f3">
<checksum>LXyRdIdx04BZS3zSK92ryw==</checksum>
</slcache.FileAttributes>
</MF0>

View 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="c7869f89-1547-44ce-8ac9-276c254a63a4">
<checksum>D6xWcyOKDYRnjDVQkSZhsg==</checksum>
</slcache.FileAttributes>
</MF0>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB