diff --git a/matlab/nano_hexapod_model.slx b/matlab/nano_hexapod_model.slx index 10f207f..1315481 100644 Binary files a/matlab/nano_hexapod_model.slx and b/matlab/nano_hexapod_model.slx differ diff --git a/matlab/src/initializeController.m b/matlab/src/initializeController.m index 1b55d91..88b9188 100644 --- a/matlab/src/initializeController.m +++ b/matlab/src/initializeController.m @@ -1,7 +1,7 @@ function [] = initializeController(args) arguments - args.type char {mustBeMember(args.type,{'open-loop', 'iff', 'dvf', 'hac-dvf', 'ref-track-L', 'ref-track-iff-L', 'cascade-hac-lac', 'hac-iff', 'stabilizing'})} = 'open-loop' + args.type char {mustBeMember(args.type,{'open-loop', 'iff'})} = 'open-loop' end controller = struct(); @@ -10,30 +10,9 @@ function [] = initializeController(args) case 'open-loop' controller.type = 1; controller.name = 'Open-Loop'; - case 'dvf' - controller.type = 2; - controller.name = 'Decentralized Direct Velocity Feedback'; case 'iff' - controller.type = 3; + controller.type = 2; controller.name = 'Decentralized Integral Force Feedback'; - case 'hac-dvf' - controller.type = 4; - controller.name = 'HAC-DVF'; - case 'ref-track-L' - controller.type = 5; - controller.name = 'Reference Tracking in the frame of the legs'; - case 'ref-track-iff-L' - controller.type = 6; - controller.name = 'Reference Tracking in the frame of the legs + IFF'; - case 'cascade-hac-lac' - controller.type = 7; - controller.name = 'Cascade Control + HAC-LAC'; - case 'hac-iff' - controller.type = 8; - controller.name = 'HAC-IFF'; - case 'stabilizing' - controller.type = 9; - controller.name = 'Stabilizing Controller'; end if exist('./mat', 'dir') diff --git a/simscape-nano-hexapod.org b/simscape-nano-hexapod.org index 92ce0ee..939664a 100644 --- a/simscape-nano-hexapod.org +++ b/simscape-nano-hexapod.org @@ -222,18 +222,19 @@ CLOSED: [2025-02-11 Tue 23:00] - *Add parallel stiffness* - High pass filter -** TODO [#A] Check all figures +** DONE [#A] Check all figures +CLOSED: [2025-02-12 Wed 10:30] - [ ] Captions - [ ] Legend, units, etc... -** TODO [#A] Make sure the Simulink file for the Stewart platform is working well -SCHEDULED: <2025-02-10 Mon> +** DONE [#A] Make sure the Simulink file for the Stewart platform is working well +CLOSED: [2025-02-12 Wed 10:30] SCHEDULED: <2025-02-10 Mon> It should be the exact model reference that will be included in the NASS model (referenced subsystem). - [X] Check what was already done for the toolbox -- [ ] Same parameters for the APA as in previous model (1N/um ?) +- [X] Same parameters for the APA as in previous model (1N/um ?) *kn = 1N/um* nano hexapod mass: *15kg* cn = 2*0.01*sqrt((ms + mn)*kn) @@ -249,18 +250,18 @@ It should be the exact model reference that will be included in the NASS model ( - [X] 3dof - [X] 4dof - [X] flexible => will be added for chapter 2 -- [-] actuator: +- [X] actuator: - [X] 1dof - [X] 2dof (APA) - - [ ] FEM => will be added for chapter 2 + - [X] FEM => will be added for chapter 2 - [X] plates: cylindrical or .STEP Only cylindrical for now - [X] Add payload: - size: height, diameter/radius - Weight -- [ ] Control configuration +- [X] Control configuration - [X] Log configuration -- [ ] *Do I want to be able to change each individual parameter value of each strut => no* +- [X] *Do I want to be able to change each individual parameter value of each strut => no* ** TODO [#A] For simplicity, maybe not talk at all about parallel stiffness with the force sensor This could be the topic of the NASS section. @@ -1664,7 +1665,10 @@ This high gain, combined with the bounded phase, enables effective damping of th #+begin_src matlab %% Identify the IFF Plant -initializeSimplifiedNanoHexapod('actuator_kp', 0); % Ignoring parallel stiffness for now +stewart = initializeSimplifiedNanoHexapod('actuator_kp', 0); % Ignoring parallel stiffness for now +initializeSample('type', 'cylindrical', 'm', 10, 'H', 300e-3); +initializeLoggingConfiguration('log', 'none'); +initializeController('type', 'open-loop'); % Input/Output definition clear io; io_i = 1; @@ -2228,7 +2232,7 @@ end function [] = initializeController(args) arguments - args.type char {mustBeMember(args.type,{'open-loop', 'iff', 'dvf', 'hac-dvf', 'ref-track-L', 'ref-track-iff-L', 'cascade-hac-lac', 'hac-iff', 'stabilizing'})} = 'open-loop' + args.type char {mustBeMember(args.type,{'open-loop', 'iff'})} = 'open-loop' end controller = struct(); @@ -2237,30 +2241,9 @@ function [] = initializeController(args) case 'open-loop' controller.type = 1; controller.name = 'Open-Loop'; - case 'dvf' - controller.type = 2; - controller.name = 'Decentralized Direct Velocity Feedback'; case 'iff' - controller.type = 3; + controller.type = 2; controller.name = 'Decentralized Integral Force Feedback'; - case 'hac-dvf' - controller.type = 4; - controller.name = 'HAC-DVF'; - case 'ref-track-L' - controller.type = 5; - controller.name = 'Reference Tracking in the frame of the legs'; - case 'ref-track-iff-L' - controller.type = 6; - controller.name = 'Reference Tracking in the frame of the legs + IFF'; - case 'cascade-hac-lac' - controller.type = 7; - controller.name = 'Cascade Control + HAC-LAC'; - case 'hac-iff' - controller.type = 8; - controller.name = 'HAC-IFF'; - case 'stabilizing' - controller.type = 9; - controller.name = 'Stabilizing Controller'; end if exist('./mat', 'dir')