fcmdriver requires certain data structures to be defined in the model. To set these up, execute:
path("$FL_DIR/fcmdriver/scripts/");
exec("fcmdriver.configure",1);
in Scope prior to dumping the model.
FCMDUMP in the Scope online help.
In some math models, it is necessary to turn off flight control system modes or change other settings while trimming.
Parameters to be set prior to a trim are controlled by the @TRIMCONFIG variable list, and their values are specified in WORLD_ANALYSIS_APTRIM_TRIMCONFIG. For example:
pushg(world_analysis)
group aptrim
varlist @trimconfig = ..
world_model_control_cpg_configpar_asas, ..
world_model_control_cpg_configpar_dsas;
trimconfig = [0 ; 0];
varlist @unused = trimconfig;
popg;
This will set ASAS and DSAS to 0 at the beginning of the trim process. At the end of the trim, the previous values of @TRIMCONFIG are restored.
The following tunable parameters may be set to configure the trim process:
These parameters may be set at any time after executing fcmdriver.configure
To add user-defined FLCOMMS blocks:
First, declare all of the FLCOMMs blocks you wish to access before dumping the model:
FCMDUMP(@BLOCK1);
FCMDUMP(@BLOCK2);
...
FCMDUMP("model.fcm");
Next, list all of the relevant data blocks in the [MODEL] section of the fcmdriver configuration file:
[MODEL] outputs = @BLOCK1 @BLOCK2 inputs = @INPUTS1 @INPUTS2 @INPUTS3
Blocks in the outputs list will be copied from the model to FLCOMMS once per frame. Blocks in the inputs list will be copied from FLCOMMS to the model once per frame.
You may also specify input and output lists in system comments in the FCM file:
// In Scope, before dumping the model:
describe("ICD-Outputs: @BLOCK1 @BLOCK2 ...");
describe("ICD-Inputs: ...");
The driver uses the ICD-Outputs (resp. ICD-Inputs) system comment as the default if outputs= (resp. inputs=) is not specified in the driver configuration file.