Canopy Newsletter 12 – May 2020


There have been a lot of new developments since the last newsletter. Here is a summary of some of the highlights:

Canopy is Expanding

We’re delighted to welcome Lizzie Jarvis to the team as our Operations Director. Lizzie is a most welcome addition to the team, and will be taking over much of the day-to-day running of the company. We expect this to free up the technical team to keep pushing back the simulation state-of-the-art.

Python Client Library

The Canopy API is a powerful tool for automating tasks in Canopy and integrating with in-house applications. However actually using the API can be challenging. While previously we had some basic C# sample code to help clients get started, we now have an officially supported Python library which you can either use directly, adapt to your needs, or use as a reference. In particular the library wraps up common tasks, such as running simulations and downloading the results, into simple helper methods which manage the complexity for you.

The library is open source, and available at the GitHub repository here:

We have also created a repository of example code showing how to use the library, ranging from running studies and plotting results, to more specialised tasks such as fitting aero data and converting between lookup and parametric bump stops. If you’re interested in automating processes that cannot be performed within Canopy then this is a great place to start:

Image for post

Fully Asymmetric Car Setup

To provide compatibility with Nascar and IndyCar Series, all suspension components and tyres can be fully asymmetric. Using the usual Canopy convention, we define parameters for the right hand side of the car and by default this is mirrored for the left hand side. To introduce asymmetry for a specific component then find the parameter name ending in “L” to define the left hand side separate to the right.

All accounts now have access to basic asymmetric options: toe, camber, crossweight (defined under Chassis) and lateral weight distribution (defined under carRunningMass). In case you would like access to full asymmetry for all suspension components and tyres please get in touch and we can make these options available on your account.

Variable Track Camber Profile

Previously camber angle could be defined around the track, but this was linear from one edge to the other. To simulate variable banking on ovals the track edge definition has been enhanced to allow the definition of left and right camber angle in addition to elevation at each edge. At every point around the circuit, a cubic is then fitted across the track width to match the two camber angles and z-heights, allowing variable camber across the track width to be simulated.

Image for post

Weight Jacker & Driver Adjustable Anti-Roll Bars

In the same way as the simulation has control over brake/throttle/steer and racing line position, anti-roll bar stiffness and weight jacker position can be varied around the lap.

Three options are available:

1) Position/stiffness can be varied continuously around the lap for optimal performance.

2) A more practical solution can be obtained by defining fixed zones where the simulation is allowed to change the position.

3) Correlation work can be done using a lookup of position/stiffness around the lap to force the simulation to replicate the driver.

Image for post

sLap Powertrain Limits

Dynamic Lap is the perfect tool for evaluating optimal energy deployment as it automatically learns the ideal deployment profile. Sometimes it is useful to evaluate the cost of non-optimal energy strategies which may be easier to implement or provide some strategic benefit.

In addition to strategy weights a new feature has been introduced to specify Deployment & Harvest limits as a function of sLapCentreLine (better reference than sLap which can vary according to the racing line length). This makes it possible to define your own deployment profile to assess the cost of various compromises. The limits provide an upper bound for deployment and lower bound for harvest. The simulation can choose to deploy below the limit where it is not beneficial, but a strategy weight can be used to encourage deployment at the limit.

Image for post

Config Compare

When comparing the differences between two configs it’s now possible to copy some of the differences from one config to the other. In the example below by clicking on the red/green boxes we can select our desired combination of parameters for the output car which can then be staged, saved to the original car or saved as a new car.

Image for post

Abstract Suspension

Rather than providing pickup points and allowing Canopy to solve the suspension kinematics, you can input the kinematics directly. This might be handy if you don’t have the pickup points or you’re working on a conceptual design.

We have made two improvements to abstract suspension:

1) Previously the External Suspension was defined by the first and second derivative of x/y/z Camber/Caster/Toe w.r.t. rocker angle. Now we define the movement as a quadratic instead, which make it much easier to input kinematics data: simply fit a quadratic to your data, and input the “a” and “b” coefficients into Canopy.

2) Abstract Internal suspension has been added, meaning that the kinematics of your internal components can be entered directly, instead of using pickup points.

Image for post

Pacejka .tir Importer & Canopy Tyre Converter

Tired of manually copying over Pacejka tyre parameters to Canopy? Now you can import a .tir file directly into Canopy.

You can also use the Pacejka to Canopy tyre converter in case you are interested in improving your tyre correlation by using a model that is much easier to maintain thanks to the simplified parameter set.

Image for post

Did you know…

  • A locked diff option has been added.
  • Droop stops have been included in the vehicle model.
  • Longitudinal tyre grip factor can now be defined separately for braking and acceleration.
  • More functions have been added to User Maths, plus the ability to pull in parameters from the car config.